| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
Reported by Dialyzer.
|
| |
|
|
|
|
|
| |
... instead of using a copy of the function from Erlang 20. This is
possible because the requirement was bumped to Erlang 21.
Reported by Dialyzer.
|
| |
|
|
|
|
|
|
|
|
| |
register_connection/1
There is a race condition reported by Dialyzer because do a
read/write outside of a Mnesia transaction.
Historically there was a transaction, but it was removed in
commit e5df4e6ee105900087744ed40e58b8041738b9cd.
|
| |
|
|
|
|
|
|
|
| |
... in put_user/3.
If the ets call behind `lookup_user/1` fails for another reason than the
entry was not found, it would be an exception anyway.
Reported by Dialyzer.
|
| |
|
|
|
|
|
|
| |
list_local_mirrored_classic_without_synchronised_mirrors_for_cli/0
The return value was incorrectly spec'd.
Reported by Dialyzer.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
Otherwise they will show as failing if the latest build failed, even
when this build ran on a different branch.
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
|
| |\
| |
| | |
Changed default configuration values related to quorum queues
|
| | |
| |
| |
| |
| |
| | |
Specifically:
- changed default quorum_commands_soft_limit from 256 to 32
- override Ra wal_max_batch_size to 4096
|
| |/
|
|
| |
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
|
| |
|
|
| |
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
|
| |\
| |
| | |
Improve handling of product name & version
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When the product name & version are not overridden, the common logged
message is the following one:
2020-04-24 15:08:51.754 [info] <0.263.0>
Starting RabbitMQ 3.8.0+rc.1.278.g5cdf562.dirty on Erlang 21.3.8.13
Copyright (c) 2007-2020 VMware, Inc. or its affiliates.
Licensed under the MPL 1.1. Website: https://rabbitmq.com
Now, when the product name or version are overridden, the "Starting"
line mentions them. There is a second line added with the base product
name & version:
2020-04-24 15:08:51.754 [info] <0.263.0>
Starting RabbitMQ Enterprise Edition 2020.04 on Erlang 21.3.8.13
Based on RabbitMQ 3.8.0+rc.1.278.g5cdf562.dirty
Copyright (c) 2007-2020 VMware, Inc. or its affiliates.
Licensed under the MPL 1.1. Website: https://rabbitmq.com
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now, `rabbit:product_info/0` will report the base name & version
("RabbitMQ" and its actual version) separately from the final product
name & version (if any).
If the product name & version were not overridden in the configuration or
the environment, they will be missing from the product info return
value.
It allows caller to distinguish situations where the product name &
version were set or not.
An example use case is `rabbitmqctl status`: we want to report the
product name & version only if they were overridden. If they were not,
the "Product name" and "Product version" won't be added to the output.
Only "RabbitMQ version" will be displayed.
To help with the above, the map returned by `rabbit:product_info/0` also
contains a flag, `product_overridden`, set to true if they were.
Finally, the RabbitMQ version is often associated with the Erlang/OTP
release. So include this into the returned map. This will save an
additional RPC call if the remote caller is interested in both.
|
| |
|
|
|
|
|
| |
rabbitmq/revert-rabbitmq-server-2308-dead_queue_rejects"
This reverts commit 55d28f5ad3ad3a47791989bd118c6d8ce954eeca, reversing
changes made to 0bf8d0841c2467b93ab849f4f53a7bc99ab854e7.
|
| | |
|
| |\
| |
| | |
Handle "closed" return value
|
| | |
| |
| |
| |
| |
| |
| |
| | |
Turns out `port_please/2` and `port_please/3` can return `closed` - https://github.com/erlang/otp/pull/2616
We need to handle it here.
First reported via RabbitMQ public slack channel - https://rabbitmq.slack.com/archives/C1EDN83PA/p1588166195464400
|
| |/
|
|
| |
This suite has been flaky, but it only fails with a timeout trap on the whole test. By setting a timeout for invidual rabbitmqctl commands, it should be easier to discern in a flake where things got stalled.
|
| |
|
|
|
|
| |
So that more information is available in the logs upon test failure
https://3.basecamp.com/4467044/buckets/16481075/todos/2619089282
|
| |\
| |
| | |
Remove an outdated comment
|
| | | |
|
| | | |
|
| |\ \
| |/
|/| |
QQ: Fix crash bug when reaching delivery limit
|
| | |
| |
| |
| |
| |
| | |
This only happens when using basic.get but would crash the quorum queue
when the delivery limit was reached due to the transient basic.get
consumer being removed
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | | |
rabbitmq/revert-rabbitmq-server-2308-dead_queue_rejects
Revert "Remove dead_queue_rejects test flake"
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit 9772aa8f8256a410bcc13ae5038f949ffe1d5b84.
Check RPC return value
Try a cast to fix test
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
@dumbbell copy paste:
When we re-run a workflow, the `ebin` cache, created by the initial run,
is restored in `checks`. This causes rabbitmq_prelaunch to be cleaned
when we run `make xref` and thus the make target fails.
This is probably a bug in Erlang.mk or one of our plugins,but in the
meantime, I suggest we don't cache this directory.
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Remove the Travis CI build badge - it links to a build which is less
comprehensive than the new GitHub Actions builds. We are likely to
remove Travis completely, but would like to do that after we discuss it.
cc @dumbbell
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Triggering another build and busting the deps & ebin app modules cache,
because it makes no sense for xref to pass in OTP v22.3 but fail in OTP
v21.3 - it's the same src!
https://github.com/rabbitmq/rabbitmq-server/actions/runs/86189793
cc @dumbbell
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
|
| |/ / |
|
| |\ \
| | |
| | |
| | |
| | | |
rabbitmq/always-handle-config-files-with-cuttlefish
Always handle config files with Cuttlefish
|
| | | |
| | |
| | |
| | |
| | |
| | | |
It is unused in RabbitMQ or tier-1 plugins, and the previously returned
value made no sense since the switch to Cuttlefish as a library (as part
of #2180).
|
| |/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This has several benefits:
1. It simplifies the code, all configuration being handled by the same
code path (no more condition on Erlang-term-based vs. Cuttlefish).
`rabbit_config` shrinks quite a lot in the process.
2. We can use additional configuration files AND an Erlang-term-based
configuration file. In other words, it is possible to use the same
existing Erlang-term-based file and introduce Cuttlefish files when
needed.
It allows a user to run RabbitMQ with:
RABBITMQ_CONFIG_FILE=/path/to/rabbitmq.config \
RABBITMQ_CONFIG_FILES=/path/to/conf.d/*.conf \
./sbin/rabbitmq-server
A developer can do the same with `make run-broker`:
make run-broker \
RABBITMQ_CONFIG_FILES=/path/to/conf.d/*.conf
In the example above, the main configuration file generated by
rabbitmq-run.mk is an Erlang-term-based one.
This is implemented by calling Cuttlefish with a (possibly empty) list
of additional files and the Erlang-term-based file as the advanced
configuration file.
References #2180.
|
| |\ \
| | |
| | | |
Run both authn and authz steps when rabbit_auth_backend_cache module …
|
| | | |
| | |
| | |
| | | |
Fixes #2322
|
| | | |
| | |
| | |
| | | |
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
|
| |\ \ \
| |_|/
|/| | |
Run checks & tests in GitHub Actions on every push
|
| |/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Separate workflows for min & max supported OTP version
- Multiple groups for clustering_management (run in parallel & finish quicker)
- Store CT logs as artefacts on failure
- Tests badge in README
- Store in S3 the version of the RabbitMQ components used while testing
We have decided to not not run tests for RabbitMQ components that we
depend on: rabbitmq-cli, rabbitmq-erlang-client & rabbitmq-common.
rabbitmq-cli & rabbitmq-erlang-client depend on rabbitmq-server
(recursive dependency) meaning that they will clone rabbitmq-server
again, inside the deps dir. We will continue to run these in Concourse,
until we merge all repositories into a single one. Let's be honest, it's
a monolith!
Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
|
| |\ \
| |/
|/| |
Introduce rabbit_upgrade_preparation
|
| | |
| |
| |
| | |
Part of rabbitmq/rabbitmq-cli#408.
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Rather than wait a fixed 2000ms, poll the test condition for up to
5000ms.
Also switch from a raw message send in rabbit.erl to a gen_event:call/4
to the lager backend. I had hoped this would behave synchronously, which
it does not appear to, but at least we now get a value back from the
call.
|
| |\ \
| | |
| | | |
Use new `inet_tcp_proxy_dist`
|