summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* improve docsbug25980Matthias Radestock2014-02-051-6/+6
|
* Don't reinvent the wheelTim Watson2014-01-301-2/+1
|
* Refactor the tests just a little bit moreTim Watson2014-01-301-23/+23
| | | | | | | | | Extract a helper to wait for process exits we're expecting. We ignore the potential race (when establishing the monitor) since the exit reason is irrelevant here, we just want to know the process is gone. Instead of hitting 'nonode@nohost', which is slow (perhaps due to DNS querying), we pull the current hostname and combine 'nonode' with that.
* proper cleanupMatthias Radestock2014-01-291-3/+9
| | | | | this should ensure that all process registrations etc have disappeared by the time we return from the function.
* Rework mcall testsTim Watson2014-01-291-13/+25
| | | | | | Perform registration in the test process to avoid races. When we expect a process to be dead (before mcall), ensure it is. Ensure the last surviving test process is killed on completion.
* Unify the test cases and cover all basesTim Watson2014-01-291-40/+42
|
* refactor: simplifyMatthias Radestock2014-01-291-19/+20
|
* refactor: lift do_mcall casing to headMatthias Radestock2014-01-291-10/+7
|
* move mcall docs to correct place, and improve themMatthias Radestock2014-01-291-5/+8
|
* Return the correct exit reason for unknown global registered namesTim Watson2014-01-292-2/+2
|
* Cosmetic (ish)Tim Watson2014-01-291-26/+26
|
* Remove rabbit_misc:multi_call/2Tim Watson2014-01-291-28/+0
|
* Fix multi-call testsTim Watson2014-01-281-4/+8
|
* Use gs2:mcall/1 in r_amqqueue:force_event_refresh/1Tim Watson2014-01-281-2/+2
|
* Add a note to the gs2 essayTim Watson2014-01-281-0/+5
|
* Handle varying destinations in mcall/1Tim Watson2014-01-282-9/+46
|
* Refactor: tag replies safely and avoid using erlang:demonitor/2Tim Watson2014-01-271-17/+19
| | | | | | | | | For efficiency reasons, instead of demonitoring (which leads to scanning the entire mailbox), cope with duplicate monitor refs when collating gen_server replies. For safety, tag the exit signal (which we treat as a result) with a unique reference instead of the middle-man's pid.
* Introduce a new parallel (multi-server) call APITim Watson2014-01-272-0/+76
|
* merge bug25827 into defaultMatthias Radestock2014-01-249-110/+231
|\
| * turns out we needed recursive=true after allMatthias Radestock2014-01-241-6/+8
| | | | | | | | ...but actually do this whole thing differently
| * Ignore clean.dot read/delete errors during upgradesTim Watson2014-01-241-14/+4
| |
| * Improve recovery terms upgrade handlingTim Watson2014-01-231-6/+17
| | | | | | | | | | | | Use a more specific regex to locate the old clean.dot files. If reading an old clean.dot file fails, simply log the error. Ensure that we close the dets table after our upgrade step has run.
| * Refactor rabbit_recovery_terms startupTim Watson2014-01-233-14/+16
| | | | | | | | | | | | | | | | Rename rabbit_queue_index:{recover => start}/1. Rename rabbit_shutdown_terms{recover => start}/0. Stop handling supervisor child-start errors explicitly. Add {rabbit_recovery_terms, rabbit_queue_index}:stop/0 variants. Introduce a `stop? code path from BQ:stop/0 to qi:stop/0.
| * Refactor (recovery-terms restart strategy)Tim Watson2014-01-232-6/+3
| | | | | | | | | | Use rabbit_sup:start_child/1, since a transient restart is fine. Match on rabbit_recovery_terms:recover/0, since we want to crash if that fails.
| * API consistency, clarity and cosmetics:Matthias Radestock2014-01-232-26/+30
| | | | | | | | | | | | | | | | | | | | | | - store/2 took a full dir path whereas read/1 only took the basename; now they both take the basename. - clearly separate the public API and the internal API in exports - don't have specs for internal API - remove unused UPGRADE_TABLE define - ditch rabbit.hrl include - it was only needed for ?MAX_WAIT - sensible order of function definitions, plus some separators for clarity
| * cosmeticMatthias Radestock2014-01-161-2/+1
| |
| * Fix the BQ interface comments pertaining to recovery dataTim Watson2014-01-161-4/+2
| |
| * Fix type spec and modify backing_queue_qc to call init correctlyTim Watson2014-01-162-2/+2
| |
| * cosmeticMatthias Radestock2014-01-152-3/+2
| |
| * merge default into bug25827Tim Watson2014-01-159-107/+226
| |\
| | * Refactor - simplify BQ/QI interface & reduce the distance to defaultTim Watson2014-01-156-33/+39
| | |
| | * Cosmetic (ish)Tim Watson2014-01-142-10/+1
| | | | | | | | | | | | Strip extraneous comment lines and remove an unused function.
| | * Refactor: reduce the distance to defaultTim Watson2014-01-143-20/+13
| | |
| | * Cosmetic (ish)Tim Watson2014-01-142-2/+2
| | | | | | | | | | | | Spelling, and do not shout in comments.
| | * Refactor / maintain a clean interface to the backing queueTim Watson2014-01-145-82/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of passing amqqueue records to BQ:start/1, revert to passing queue names and return a list of queue recovery terms ordered identically to the given queue names. As a result, we can go back to keying recovery data off the unique queue directory (base)name and no longer need to track the queue name in the qi. We now also only need the queue directory name to lookup recovery terms. Also update the BQ interface documentation and callbacks/specs.
| | * Refactor to avoid O(N*2) lookups during queue recoveryTim Watson2014-01-135-81/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We remove knowledge of queue directories from rabbit_amqqueue, opting to key index recovery terms off the amqqueue record name (which is a resource record) instead. Although this simplifies the code somewhat and avoid a potentially costly lookup during queue initialisation, it does require a change to the backing queue API, since we now wish for r_amqqueue:recover/0 to iterate over all the queues (paired with their recovery terms, if any) and this means passing #amqqueue{} records around instead of using a #resource{} and/or directory name as keys. Also see rabbit_recovery_terms:read/1, which has gained an extra parameter, since during upgrades we have no access to #amqqueue{} records and /must/ therefore key any upgraded recovery data on the queue directory (basename) instead. This double keyed lookup is particularly gross since we could look the dirname up ourselves in rabbit_recovery_terms:read/1, but doing so avoids the need to export queue_name_to_dir_name from the qi _and_ calculating the MD5 on the queue?s name twice, since the qi (which is calling into read/2) has already done that anyway.
| | * cosmeticMatthias Radestock2014-01-133-44/+20
| | |
| | * merge default into bug25827Matthias Radestock2014-01-1323-249/+453
| | |\
| | * | Stop using the full path to the queue directory as the recovery keyTim Watson2014-01-102-8/+4
| | | |
| | * | Oops - relocating the recovery file broke our lookup functionTim Watson2014-01-091-2/+2
| | | |
| | * | Improve the backing queue API module documentationTim Watson2014-01-091-2/+5
| | | |
| | * | Avoid unnecessary cosmetic changes (reduce the distance to default)Tim Watson2014-01-091-4/+3
| | | |
| | * | We don?t need to ensure the mnesia_dir is present hereTim Watson2014-01-091-1/+0
| | | |
| | * | Store the recovery terms directly beneath RABBITMQ_MNESIA_DIRTim Watson2014-01-091-1/+1
| | | |
| | * | Cosmetic (ish)Tim Watson2014-01-091-22/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - upgrade_recovery_{indexes => terms} - improved and consistent parameter names - uniform and properly aligned spec attributes - better naming convention for queue-dir / key handling
| | * | Make sure we're storing the queue dir name not the old clean file nameTim Watson2014-01-091-1/+1
| | | |
| | * | Merge default into bug25827Tim Watson2014-01-0910-635/+810
| | |\ \
| | * | | Better handling of file system directories during shutdown/recoveryTim Watson2014-01-092-21/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ensure the ?queues? directory exists before attempting to sync the recovery terms dets table. Drive qi recovery off the durable queues we?re passed, rather than relying on the existence of queue dirs, which are created lazily.
| | * | | Scrub un-used code and introduce a lookup-by-recovery-key APITim Watson2013-12-314-22/+23
| | | | |
| | * | | Trap exits and ensure we close the table on shutdownTim Watson2013-12-201-1/+3
| | | | |