summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Added tag rabbitmq_v3_4_3 for changeset ba30e4f0e084stableJean-Sebastien Pedron2015-01-070-0/+0
|
* RPM/deb changelogs for release 3.4.3rabbitmq_v3_4_3Jean-Sebastien Pedron2015-01-072-0/+9
|
* Merge bug26503Simon MacMullen2015-01-051-1/+0
|\
| * Merge bug26502Simon MacMullen2015-01-051-1/+0
| |\
| | * Remove 'backing_queue_status' from ?STATISTICS_KEYSbug26502Jean-Sebastien Pedron2014-12-241-1/+0
| |/ | | | | | | | | | | | | | | This key is already provided by rabbit_backing_queue:info_keys/0 which is concatenated to ?INFO_KEYS and ?STATISTICS_KEYS. This fixes a bug where this key was duplicated in the JSON returned by the "/api/queues" endpoint.
* | Rework SSL's verify_fun supportbug26503Jean-Sebastien Pedron2014-12-261-4/+55
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Until now, only the legacy form was supported (the one existing in Erlang up-to R13B). The user would use the following RabbitMQ configuration: {ssl_options, [ {verify_fun, {Module, Function}} ]} This is converted to the following ssl option: {ssl_options, [ {verify_fun, fun(Errors) -> Module:Function(Errors) end} ]} Although this form is still supported by Erlang R14B+, this is undocumented and some users complain about RabbitMQ not matching the expected behaviour, according to ssl's documentation. Now, the new form is supported as well. Here's what the user would configure: {ssl_options, [ {verify_fun, {Module, Function, InitialUserState}} ]} or: {ssl_options, [ {verify_fun, {Module, Function}} ]} This is converted to the new form: {ssl_options, [ {verify_fun, {fun(OtpCert, Event, State) -> Module:Function(OtpCert, Event, State) end, InitialUserState }} ]} To determine which form to use, we look at the version of the ssl application: o 4.0.1+: We check if Module:Function/3 is exported and use the new form. If Module:Function/1 is exported, we use the old form. If both are exported, the new form is preferred. If InitialUserState is unspecified, 'none' is used. o Before 4.0.1: We use the legacy form only. If Module can't be loaded or if the expected Function/Arity is not exported, an error is logged and RabbitMQ fails to start.
* Merge bug26490Simon MacMullen2014-12-122-2/+42
|\
| * Merge bug26498Simon MacMullen2014-12-111-2/+13
| |\
| | * Minor refactor.bug26498Simon MacMullen2014-12-111-8/+10
| | |
| | * Backport the part of 505868f421db which fixes ram_bytes when requeueing an ↵Simon MacMullen2014-12-111-2/+11
| |/ | | | | | | in-memory message to delta, and do the same for beta.
| * Merge bug26491Simon MacMullen2014-12-100-0/+0
| |\
| * | Minor language corrections.bug26491Simon MacMullen2014-12-101-4/+4
| | |
| * | Autoheal: Make sure Mnesia is stopped on all losers before they restartJean-Sebastien Pedron2014-12-101-0/+29
| |/ | | | | | | | | | | | | | | | | | | | | | | | | This works around a race in Mnesia where a starting loser would hang forever. This happens when a starting loser connects to another loser, negotiates the Mnesia protocol and attempts to acquire a write lock on the other node's schema. If the other nodes stops right between the protocol negotiation and the lock request, the starting node never receives an answer to its request. Before this fix, the hang occurred after at most 30 minutes looping on the partitions:autoheal test in rabbitmq-test. With the fix, RabbitMQ survived an all night long run.
* | Inline the Continue() anonymous functionbug26490Jean-Sebastien Pedron2014-12-101-4/+2
| |
* | Add more information to the 'about_to_heal' state explanationsJean-Sebastien Pedron2014-12-101-3/+7
| |
* | Autoheal: The loosing leader must wait for the winner_is messageJean-Sebastien Pedron2014-12-091-2/+7
|/ | | | | | | | | As any other loosing nodes, the leader must wait for the winner_is message, instead of restarting immediately. The previous behaviour caused transient failures in the autoheal process if the leader was in the middle of the restart at the time the winner checks that all loosing nodes are up and running.
* merges bug26478 into stableAlvaro Videla2014-12-083-25/+101
|\
| * Merge bug26446Simon MacMullen2014-12-051-1/+21
| |\
| | * Throw an error if at least one plugin's module can't be loadedbug26446Jean-Sebastien Pedron2014-12-031-1/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This prevents a plugin from being enabled if it won't be able to actually run later. A use case for this is a plugin built with Erlang version N, but executed on Erlang version M, where M isn't capable of running the bytecode from N. This was the case with Eralng R14B vs. R15B. The "rabbitmq-plugins enable <plugin>" command reports the error and the plugin remains disabled. A node reports the error too and refuses to start, exactly as if the plugin was missing.
| * | Merge bug26493Simon MacMullen2014-12-050-0/+0
| |\ \ | | |/
| * | Abstraction: safe process_info().bug26493Simon MacMullen2014-12-051-10/+16
| | |
| * | Add top_memory_use() and top_binary_refs().Simon MacMullen2014-12-051-3/+31
| |/
| * Merge bug26265Simon MacMullen2014-11-285-22/+71
| |\
| | * Merge bug 26081Simon MacMullen2014-11-280-0/+0
| | |\
| | * | Rename this to indicate what it does, not the current circumstances in which ↵bug26081Simon MacMullen2014-11-281-2/+2
| | | | | | | | | | | | | | | | it is called.
| | * | Check cluster consistency before joining a clusterJean-Sebastien Pedron2014-11-271-15/+27
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this change, the node would join the cluster and the consistency would be only checked during application restart (rabbitmqctl start_app). This could lead to crash during the join due to Erlang, Mnesia or RabbitMQ incompatibilities. Now, the join_cluster command reports the problem. Here's an example: $ rabbitmqctl join_cluster <remote_node> Clustering node <local_node> with <remote_node> ... Error: {inconsistent_cluster, "OTP version mismatch: local node is R16B03-1, remote node 17.3"}
| * | No need to load/unload the plugin around the plugin_provided_by_otp/1 checkbug26265Jean-Sebastien Pedron2014-11-281-14/+3
| | | | | | | | | | | | While here, remove the unused PluginVsn variable.
| * | Remove "Plugins: adding to code path" log messageJean-Sebastien Pedron2014-11-281-2/+0
| | |
| * | Only check ERTS version to determine if we accept an external eldapJean-Sebastien Pedron2014-11-261-31/+3
| | |
| * | Add plugin paths to the beginning of the code pathJean-Sebastien Pedron2014-11-241-4/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The goal is to make sure the right application is picked, in case the same one is available as both a RabbitMQ plugin and an external Erlang application. For instance, this could be the case with the Cowboy application: a version is available in the plugins, but the user could add an incompatible version to Erlang/OTP libdir or set ERL_LIBS to point to it. There's one exception currently: eldap. This application used to be available as a 3rd party one. But since Erlang R15B01, it's included in the standard library. We trust this version to have a stable API. Therefore, if the node runs on R15B01 or later and eldap version is 1.0+, we use this one. In all other cases, we don't trust it and prefer the RabbitMQ plugin.
* | | Don't halt execution if RABBITMQ_CTL_ERL_ARGS is set.bug26478Simon MacMullen2014-11-261-0/+3
| |/ |/|
* | deb / RPM changelogsSimon MacMullen2014-11-262-0/+9
| |
* | Added tag rabbitmq_v3_4_2 for changeset b32eb93d4da5Simon MacMullen2014-11-260-0/+0
| |
* | Merge bug26367rabbitmq_v3_4_2Simon MacMullen2014-11-251-9/+49
|\ \
| * \ Merge bug26474 (again)Simon MacMullen2014-11-251-7/+29
| |\ \ | | |/ | |/|
| | * Also add a tiny bit more logging, for symmetry.bug26474Simon MacMullen2014-11-251-0/+4
| | |
| | * Mutual disconnect when partial partition detected. And don't allow a very ↵Simon MacMullen2014-11-251-1/+23
| | | | | | | | | | | | short disconnection since Mnesia might not detect it.
| | * Do not attempt to "fix up" the partitions field; if Mnesia does not detect ↵Simon MacMullen2014-11-251-6/+2
| | | | | | | | | | | | the partition it will behave wrong anyway.
| * | Merge bug26474Simon MacMullen2014-11-240-0/+0
| |\ \ | | |/ | |/|
| * | CosmeticSimon MacMullen2014-11-241-5/+3
| | |
| * | Even closer to reality.Simon MacMullen2014-11-241-2/+2
| | |
| * | Remove out of date subclause.Simon MacMullen2014-11-241-5/+3
| | |
| * | Drive-by simplification.Simon MacMullen2014-11-211-2/+1
| | |
| * | The last changeset made it possible for Mnesia to not report a partition, so ↵Simon MacMullen2014-11-211-2/+6
| | | | | | | | | | | | do so explicitly here.
| * | Be a bit more careful before declaring a partial partition.Simon MacMullen2014-11-211-1/+20
| |/
* | Add a comment so we remember x-dead-letter-exchange was already verifiedbug26367Jean-Sebastien Pedron2014-11-241-4/+6
| | | | | | | | While here, rename the check function to a more sensible name.
* | Restore the "x-dead-letter-exchange" check lost in changeset 12133Jean-Sebastien Pedron2014-11-241-0/+4
|/
* Merge bug26417 (again)Simon MacMullen2014-11-200-0/+0
|\
| * Merge bug26417Simon MacMullen2014-11-200-0/+0
| |\
* | | We don't need to throw that any more, maintain an API like that of rpc:call/4.bug26417Simon MacMullen2014-11-201-1/+1
| | |