summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'stable'Jean-Sébastien Pédron2015-03-265-9/+66
|\
| * Merge pull request #79 from rabbitmq/rabbitmq-server-78Jean-Sébastien Pédron2015-03-262-3/+58
| |\ | | | | | | Limit x-death growth to one entry per queue
| | * rabbit_dead_letter.erl: Fix shadowing of variable 'Info'Jean-Sébastien Pédron2015-03-261-12/+18
| | | | | | | | | | | | | | | | | | While here, wrap long lines to fit 80 columns. References #78.
| | * Refactoring, x-death.counter => x-death.countMichael Klishin2015-03-262-34/+35
| | |
| | * Identify x-death events by {queue, reason}, add a counterMichael Klishin2015-03-251-17/+29
| | |
| | * Limit x-death growth to one entry per queueMichael Klishin2015-03-201-3/+39
| | | | | | | | | | | | | | | | | | Otherwise the list can grow forever in some cases. Fixes #78.
| * | Merge pull request #82 from rabbitmq/rabbitmq-server-72Jean-Sébastien Pédron2015-03-261-1/+1
| |\ \ | | | | | | | | PR for rabbitmq/rabbitmq-server#72
| | * | rabbitmq-server.ocf: Pass ${RABBITMQ_PID_FILE} to "rabbitmqctl stop"Jean-Sébastien Pédron2015-03-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Submitted by jmcmeek on GitHub. Fixes #72.
| * | | Merge pull request #81 from rabbitmq/rabbitmq-server-74Michael Klishin2015-03-262-5/+7
| |\ \ \ | | |/ / | |/| | PR for rabbitmq/rabbitmq-server#74
| | * | Add 'channel' as a new log categoryJean-Sébastien Pédron2015-03-242-5/+7
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For instance, one can use the following configuration to disable messages related to channels: [ {rabbit, [ {log_levels, [{channel, none}]} ]} ]. References #74.
* | | Merge branch 'stable'Jean-Sébastien Pédron2015-03-231-23/+66
|\ \ \ | |/ /
| * | Merge branch 'rabbitmq-server-69' into stableJean-Sébastien Pédron2015-03-231-23/+66
| |\ \ | | |/ | |/|
| | * Improvements to tune_read_buffer_limitSimon MacMullen2015-03-231-13/+25
| | | | | | | | | | | | | | | | | | | | | | | | Take into account the size of the current read if appropriate, add an extra byte when shrinking so next time we know how we did, and fix comments all round. References #69.
| | * file_handle_cache: Remove the "no read buffer" comment in the essayJean-Sébastien Pédron2015-03-231-5/+5
| | | | | | | | | | | | | | | | | | While here, fix two typos. References #69.
| | * Tune the read buffer size to prevent pathological behaviourSimon MacMullen2015-03-231-20/+51
| |/ | | | | | | ...such as when we are reading backwards through a file. References #69.
* | Merge branch 'stable'Jean-Sébastien Pédron2015-03-182-0/+2
|\ \ | |/
| * Merge branch 'rabbitmq-server-68' into stableJean-Sébastien Pédron2015-03-182-0/+2
| |\
| | * Alter RabbitMQ database directory permissions for .deb and .rpm packagesMichael Klishin2015-03-182-0/+2
| |/ | | | | | | | | | | | | * Revoke group writing permission * Revoke all "others" permissions References #68.
* | Merge branch 'stable'Simon MacMullen2015-03-131-4/+14
|\ \ | |/
| * Merge branch 'rabbitmq-server-65' into stableSimon MacMullen2015-03-131-3/+6
| |\
| | * Make sure we have the properties before trying to use them. References #65.Simon MacMullen2015-03-131-3/+6
| | |
| * | Merge branch 'rabbitmq-server-67' into stableSimon MacMullen2015-03-131-1/+8
| |\ \ | | |/
| | * Priority queue ram_duration/1 should be the minimum of sub-queues', not the ↵Simon MacMullen2015-03-131-1/+8
| |/ | | | | | | sum. (References #67)
* | Merge branch 'stable'Jean-Sébastien Pédron2015-03-110-0/+0
|\ \ | |/
| * Merge branch 'master' into stableJean-Sébastien Pédron2015-03-1165-1081/+3284
| |\ | |/ |/|
* | Deb changelogs for release 3.5.0 (rerolled)rabbitmq_v3_5_0Jean-Sébastien Pédron2015-03-111-1/+1
| |
* | Merge branch 'bug26638'Simon MacMullen2015-03-111-2/+1
|\ \
| * | More reliable way to find the erl executable.Simon MacMullen2015-03-111-2/+1
|/ / | | | | | | | | | | The old way did not work if erl was not in ${ERLANG_HOME}/bin. The new way looks like it should only work if erl is on the ${PATH} - but in fact the Erlang VM arranges things so that is always true!
* | RPM/deb changelogs for release 3.5.0Jean-Sébastien Pédron2015-03-112-0/+9
| |
* | Ignore ./etc/*Michael Klishin2015-03-111-0/+1
| |
* | Merge branch 'bug26636'Simon MacMullen2015-03-102-6/+20
|\ \
| * | Rename things to be slightly clearerSimon MacMullen2015-03-101-3/+3
| | |
| * | rabbit_node_monitor: Exclude Mnesia-synced nodes when clearing partitionsJean-Sébastien Pédron2015-03-101-1/+3
| | | | | | | | | | | | | | | Otherwise, in handle_dead_rabbit(), if the specified node is already back in the cluster, "partitions" will not be emptied.
| * | rabbit_node_monitor: In handle_dead_rabbit(), consider node down onceJean-Sébastien Pédron2015-03-091-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | ... in pause conditions, especially if the remote node is back in the cluster already. This gives the node a chance to enter a pause mode. Without this, partitions may never be fixed.
| * | rabbit_networking: In on_node_down(), don't remove listeners if node is backJean-Sébastien Pédron2015-03-091-1/+5
|/ / | | | | | | | | | | | | | | If the node is already back in the cluster at the time rabbit_networking:on_node_down() is called don't remove the specified node's listeners. Otherwise, we would loose the record from the entire cluster, creating an inconsistency between the running listeners and the recorded ones.
* | Merge branch 'bug26633'Simon MacMullen2015-03-061-2/+16
|\ \
| * | Partial partition: Don't act if pause_if_all_down is about to pauseJean-Sébastien Pédron2015-03-051-2/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At least, this fixes the following crash, when the partial partition detection tries to close the connection while RabbitMQ is stopping: ** Reason for termination == ** {timeout,{gen_server,call, [application_controller, {set_env,kernel,dist_auto_connect,never}]}}
* | | Merge branch 'bug26632'Jean-Sébastien Pédron2015-03-062-19/+40
|\ \ \ | |/ / |/| |
| * | Autoheal: Wait for current outside app. process to finishJean-Sébastien Pédron2015-03-052-19/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rabbit_node_monitor:run_outside_applications/2 gains a new argument to indicate if the caller is willing is let a possible current outside application process to finish before its own function can run. If this argument is false, the current behaviour is kept: the function is not executed. This fixes a bug where autoheal's outside application function was not executed if pause_if_all_down's outside application function was still running (ie. rabbit:start() didn't return yet). The bug caused the loser to not stop and thus the autoheal process to never complete. Now, the autoheal outside application function waits for the pause_if_all_down function to finish before stopping the loser.
* | | Merge branch 'bug26628'Simon MacMullen2015-03-051-43/+147
|\ \ \
| * | | Autoheal: Add a restart_loser/2 functionJean-Sébastien Pédron2015-03-051-34/+38
| | | | | | | | | | | | | | | | ... and simplify the handle_msg({winner_is, _}, ...) clause.
| * | | Autoheal: Document the protocol changeJean-Sébastien Pédron2015-03-041-3/+66
| | | | | | | | | | | | | | | | While here, document the message flow.
| * | | Autoheal: The leader waits for "done!" message from the winnerJean-Sébastien Pédron2015-03-041-30/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before, the leader was monitoring the losers itself (exactly like the winner). When they were all down, it was going back to the "not_healing" state. Therefore, there was a possibility that the leader and winner went out-of-sync regarding the autoheal state. Now, the leader simply waits for a confirmation from the winner that the autoheal process is over. If the leader is a loser too, the autoheal state is saved in the application environment to survive the restart. When the leader is back up, it asks the winner to possibly notify it again.
* | | | Add more explanatory text for timeout_waiting_for_tablesSimon MacMullen2015-03-051-2/+8
| |/ / |/| |
* | | Merge branch 'bug26631'Jean-Sébastien Pédron2015-03-042-1/+67
|\ \ \ | |/ / |/| |
| * | Workaround "global" hangJean-Sébastien Pédron2015-03-042-1/+67
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In rabbit_node_monitor:disconnect/1, we change the "dist_auto_connect" kernel parameter to force a disconnection and give some time to all components to handle the subsequent "nodedown" event. "global" doesn't handle this situation very well. With an unfortunate sequence of messages and bad timings, this can trigger an inconsistency in its internal state. When this happens, global:sync() never returns. See bug 26556, comment #5 for a detailed description. The workaround consists of a process who parses the "global" internal state if global:sync/0 didn't return in 15 seconds. If the state contains in-progress synchronisation older than 10 seconds, the spawned process sends fake nodedown/nodeup events to "global" on both inconsistent nodes so they restart their synchronisation. This workaround will be removed once the real bugs are fixed and "dist_auto_connect" is left untouched.
* | Merge branch 'stable'Jean-Sébastien Pédron2015-03-031-21/+25
|\ \ | |/
| * Merge branch 'bug26622' into stableJean-Sébastien Pédron2015-03-031-10/+12
| |\
| | * rabbit_node_monitor: Cache pause_minority_guard() return valueJean-Sébastien Pédron2015-03-031-10/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the list returned by `nodes()` didn't change since last call to `pause_minority_guard()`, return the previous state, not `ok`. This fixes a bug where the first call to `pause_minority_guard()` could return `pausing` but the subsequent calls would return `ok`, leading to channels resuming the send of confirms even though the node is about to enter pause mode.
* | | Merge branch 'stable'Simon MacMullen2015-02-262-44/+29
|\ \ \ | |/ /