summaryrefslogtreecommitdiff
path: root/src/rabbit_amqqueue.erl
Commit message (Collapse)AuthorAgeFilesLines
* Separate out different is_process_alive implementations depending on whether ↵bug26408Simon MacMullen2014-10-101-2/+2
| | | | we want to consider the process alive if it is running but we can't talk to it via Mnesia. Thus unbreak exclusive queues with the direct client from non-Rabbit nodes.
* Pass the full queue to BQ:delete_crashed/1 since priority_queue will need it.Simon MacMullen2014-09-171-2/+2
|
* Merge in defaultbug26366Simon MacMullen2014-09-161-10/+8
|\
| * Merge in defaultSimon MacMullen2014-09-151-10/+8
| |\
| | * Sensible errors on queue durable / auto_delete inequivalence.Simon MacMullen2014-09-101-10/+8
| | |
* | | Delete a bit of complicated code.bug26151Simon MacMullen2014-09-151-33/+7
| | |
* | | Merge in defaultSimon MacMullen2014-09-151-25/+16
|\ \ \
| * | | Oopsbug26372Simon MacMullen2014-09-151-1/+1
| | | |
| * | | Reify queue crashed state.Simon MacMullen2014-09-151-23/+14
| |/ /
| * | Be more assertive, don't assume application.Simon MacMullen2014-09-151-2/+2
| | |
* | | Add crashed queues to the output of "rabbitmqctl list_queues". This is ↵Simon MacMullen2014-09-111-17/+47
| | | | | | | | | | | | rather fiddly since we need to distinguish between queues which are crashed and those which are deleted in between us checking Mnesia and calling the queue pid. We do this by observing that the deleting queue removes its own Mnesia record, so we can check again and if the record is still there after the pid is down, it must have crashed. But this is still rather fiddly; and I wonder if reifying the crashedness in Mnesia would be cleaner.
* | | Merge in defaultSimon MacMullen2014-09-111-6/+40
|\ \ \ | |/ / |/| |
| * | Show down queues in "rabbitmqctl list_queues"Simon MacMullen2014-09-101-6/+40
| |/
* | Improve commentsSimon MacMullen2014-09-111-4/+6
| |
* | Fix type spec, fix a behaviour warning.Simon MacMullen2014-09-101-3/+3
| |
* | Reduce distance to default, especially WRT rabbit_amqqueue_process startup.Simon MacMullen2014-09-091-10/+23
| |
* | OopsSimon MacMullen2014-09-091-1/+1
| |
* | CosmeticSimon MacMullen2014-09-091-7/+6
| |
* | Introduce the idea that queues can be absent for a reason. The traditional ↵Simon MacMullen2014-09-091-16/+45
| | | | | | | | | | | | absent reason is 'nodedown' and we have a new reason, 'crashed', for when crash recovery has failed and the supervisor has given up. An absent crashed queue is nearly the same as an absent nodedown queue, but we allow for deleting it since it can't be recovered by bringing a node back up. Currently absent crashed queues are not handled properly by mgmt (they appear to still be there); we might defer that to bug 26151.
* | Switch to making our restart decisions based on explicitly determining ↵Simon MacMullen2014-08-201-7/+1
| | | | | | | | whether we are starting for the first time or not. This is not very OTPish but it turns out to be necessary: there's no way to distinguish between losing a race to declare, starting a new slave, and restarting to a new slave otherwise. As an upside this code is shorter and more obviously correct (to me at least).
* | Add an intermediate supervisor so that if a queue exceeds its restart limit ↵Simon MacMullen2014-08-201-8/+9
| | | | | | | | we don't bring the whole server down!
* | Another copy of the master_in_recovery check. Not sure that's very elegant, ↵Simon MacMullen2014-08-191-5/+5
| | | | | | | | but I don't think we have much choice.
* | Roll slave startup into the new mechanism.Simon MacMullen2014-08-191-6/+3
| |
* | Various spec-ish fixes.Simon MacMullen2014-08-191-6/+4
| |
* | First step along the way to queue restarts. Create a "prequeue" module whose ↵Simon MacMullen2014-08-191-28/+19
|/ | | | job it is to decide how to proceed, and then have the supervisor start that. At the moment we only handle rabbit_amqqueue_process startup through this, but that will change. Also move the tx which decides whether we successfully declared the queue or not into the first part of the queue startup (before we call into the queue) since in future it will be needed for other things.
* stable to defaultSimon MacMullen2014-08-181-23/+71
|\
| * Renamebug25884Simon MacMullen2014-08-121-1/+1
| |
| * Max-bytes argument / policy.Simon MacMullen2014-08-121-1/+2
| |
| * Promote down slave to master if the master gets forgotten.bug26254Simon MacMullen2014-06-191-14/+23
| |
| * Maintain down_slave_nodes so we might have a clue where to look to recover from.Simon MacMullen2014-06-191-7/+23
| |
| * Move these down (ish) from federation.bug24926Simon MacMullen2014-06-111-1/+9
| |
| * Support updating decorators correctly when plugins start and stop.Simon MacMullen2014-06-091-4/+15
| |
| * Ensure rabbit_exchange funnels all updates through a single function, like ↵bug26230Simon MacMullen2014-06-091-1/+1
| | | | | | | | rabbit_amqqueue already does. Ensure that decorators is set to 'undefined' in the durable record so any inadvertent read without setting it will cause an immediate explosion not a subtle bug. And remove report_missing_decorators(), there is no longer any sane context in which it does anything useful.
| * Make decorators field in exchange and queue transient, i.e. we recalcualte ↵Simon MacMullen2014-06-091-14/+17
| | | | | | | | it on recovery in case plugins have changed. Also document a bit more clearly what the lifecycle is of the different fields in these records since that area is becoming confusing.
* | Two modes for delete, one for when the server is running and we need to be ↵bug26347Simon MacMullen2014-08-151-4/+4
|/ | | | quick going via the reverse route, and another when it is down and we need to clean up durable routes. Not entirely happy with the elegance of this but it gets the tests to pass.
* Remove rabbit_amqqueue:force_event_refresh/1 synchronybug26127Simon MacMullen2014-04-171-21/+3
|
* Allow specification of the node to use for the queue, all else being equal.bug26082Simon MacMullen2014-03-271-2/+14
|
* OopsSimon MacMullen2014-03-251-1/+1
|
* Our other consumer arg has an x- on it. Also, let's validate.Simon MacMullen2014-03-251-1/+5
|
* rabbit_amqqueue:basic_consume() will wait for recovery anyway, we don't need ↵Simon MacMullen2014-03-211-12/+1
| | | | a special function for that.
* Abstract the waiting into rabbit_amqqueue.Simon MacMullen2014-03-201-1/+12
|
* Update copyright for 2014bug25940Simon MacMullen2014-03-171-1/+1
|
* Strip out support for x-prefetch.Simon MacMullen2014-03-041-2/+1
|
* Management information on per-consumer prefetchSimon MacMullen2014-03-041-6/+9
|
* Change the semantics of the basic.qos global flag to switch between ↵Simon MacMullen2014-03-041-5/+8
| | | | per-consumer and per-channel prefetch.
* Merge in defaultSimon MacMullen2014-02-181-35/+37
|\
| * oopsMatthias Radestock2014-02-101-1/+1
| |
| * merge default into bug25853Matthias Radestock2014-02-101-14/+15
| |\
| | * Merge in defaultSimon MacMullen2014-02-101-9/+9
| | |\
| | | * bail on coding bugbug26002Matthias Radestock2014-02-061-7/+7
| | | |