| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In a cluster, if e.g. RabbitMQ 3.7.17 packages are deployed on all
cluster member, but the nodes are not restarted yet, the first node to
restart will fail. This might happen if the timing is unfortunate during
a parallel upgrade of a cluster: nodes A and B files were updated, and
node A finishes to restart while node B is still between the files
update and the post-install script.
The reason is that the `rabbit_feature_flags` module is available on all
nodes after the package deployment. However, the module may be loaded in
a pre-feature-flags already running node. In this unexpected context,
the module fails to respond properly to the queries of the remote
restarting node.
To fix this, we use an `on_load()` hook to prevent this module from being
loaded by the Erlang code server if the context is unexpected. This will
cause the query to abort with an undefined function call, exactly like
if the module was really missing.
Outside of a running RabbitMQ instance, the load of the module is
permitted. This is useful in the case of running EUnit tests for
instance (even though this specific module doesn't have any).
The previous patch was an early version to verify the hypothesis only.
Fixes #2132.
[#169086629]
|
| |
|
|
|
|
|
|
|
| |
... instead of `rabbitmqctl stop` in
`simple_confirm_availability_on_leader_change` testcase.
The problem with the latter is that it doesn't wait for the broker to
actually stop. Therefore we end up with an error when we try to restart
it after because the previous instance is still running.
|
| |
|
|
| |
References #2133.
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
rabbit.feature_flags_file would not be set in an EUnit test
environment, so proceed with code loading if eunit is loaded.
References #2133.
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In a cluster, if e.g. RabbitMQ 3.7.17 packages are deployed on all
cluster member, but the nodes are not restarted yet, the first node to
restart will fail.
The reason is that the `rabbit_feature_flags` module is available on all
nodes after the package deployment. However, the module may be loaded in
a pre-feature-flags already running node. In this unexpected context,
the module fails to respond properly to the queries of the remote
restarting node.
To fix this, we use an `on_lod()` hook to prevent this module from being
loaded by the Erlang code server if the context is unexpected. This will
cause the query to abort with an undefined function call, exactly like
if the module was missing.
Fixes #2132.
|
| | | |
|
| |\ \
| |/
|/| |
Doc: man pages for certificate commands
|
| | | |
|
| |/
|
|
| |
[#163597674]
|
| |\
| |
| | |
Error handling improvements in rabbit_epmd_monitor:check_epmd/1
|
| | | |
|
| |/
|
|
|
|
|
|
| |
To produce less noise and more informative messages.
This also introduces a function that allows for manual
check triggering.
Closes #2130.
|
| | |
|
| | |
|
| | |
|
| |\
| |
| | |
fix health check returning ok in case of partition
|
| |/
|
|
|
|
|
| |
Health check assumed if the result of partitions() is a list then everything
is ok, this is not the case the result is always a list.
rabbit_node_monitor:partitions() returns a non empty list in case there
is an mnesia_partition.
|
| |
|
|
| |
That would cause the wrong commands to be resent by the channel.
|
| |\
| |
| | |
rabbitmqctl & rabbitmq-diagnostics manpage polishing
|
| | |
| |
| |
| | |
In rabbitmqctl manpage.
|
| |/ |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
With some backends, namely Kubernetes, a set of nodes can be
discovered but then filtered out as ineligible. For example,
a node whose pod is not yet ready would not be considered for
clustering.
Hopefully it would reduce the frequency of questions such as [1][2].
1. https://groups.google.com/forum/#!msg/rabbitmq-users/tm3Ip0mXXjs/WCOm3z_fAAAJ
2. https://github.com/rabbitmq/rabbitmq-peer-discovery-k8s/issues/52
|
| | |
|
| |\
| |
| | |
Man pages: add missing diagnostics and ctl commands
|
| | | |
|
| | |
| |
| |
| |
| | |
Corrects indentation and formatting in the process.
The warnings turned out to be legit and relevant.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
[#168775486]
|
| | | |
|
| |/
|
|
| |
[#168775486]
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |\
| |
| | |
New man pages for rabbitmq-upgrade and rabbitmq-queues
|
| | |
| |
| |
| | |
* Updates to rabbitmq-diagnostics
|
| |/ |
|
| |\
| |
| | |
Fix regression where queue exchange rates were too high
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
Prior to 3.8 only the queue masters were tracked in the queue_names map
inside the channel and these were used to filter the increments of this
metric. Here we instead use the list of routed amqqueue records to
update which should be correct for all queue types.
[#168729890]
|
| |\ \
| |/
|/| |
Startup banner improvements
|