summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* fix signaturebug19468Matthias Radestock2008-11-041-1/+2
| | | | mfa() is predefined as {atom(), atom(), byte()}
* Merge default into 19468Ben Hood2008-11-0312-90/+134
|\
| * Merge two default branches into single oneHubert Plociniczak2008-10-308-55/+53
| |\
| | * Merge two default branches into oneHubert Plociniczak2008-10-301-1/+1
| | |\
| | | * merge bug19572 into defaultMatthias Radestock2008-10-255-52/+50
| | | |\
| | | * | Removed packages that are already set as dependencies of the othersbug19572Hubert Plociniczak2008-10-251-1/+1
| | | | |
| | | * | Minimal version of build dependencies on debianHubert Plociniczak2008-10-241-1/+1
| | | | |
| | | * | Forgot about perlHubert Plociniczak2008-10-191-1/+1
| | | | |
| | | * | Added missing build dependencies for debianHubert Plociniczak2008-10-191-1/+1
| | | | |
| | * | | Added new line to logrotate scripts, debian packaging no longer throws warningHubert Plociniczak2008-10-252-2/+2
| | | |/ | | |/|
| | * | Merge bug19552 into defaultHubert Plociniczak2008-10-241-5/+8
| | |\ \
| | * \ \ Merge bug19552 into defaultHubert Plociniczak2008-10-244-40/+33
| | |\ \ \
| | | * \ \ Merge bug19382 into defaultHubert Plociniczak2008-10-232-6/+6
| | | |\ \ \ | | | | | |/ | | | | |/|
| | | * | | Merge default into bug19382bug19382Hubert Plociniczak2008-10-162-34/+27
| | | |\ \ \
| | | | * | | Removed unused variables in the MakefileHubert Plociniczak2008-10-161-3/+1
| | | | | | |
| | | | * | | Spec no longer requires non-standard macros,Hubert Plociniczak2008-10-162-28/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | include rpm-specifc files as sources instead of patch
| | | | * | | Apply rpm-specific files as a patch,Hubert Plociniczak2008-09-152-9/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | instead of directly changing the source tarball
| | | | * | | Cleaned up the MakefileHubert Plociniczak2008-09-151-14/+3
| | | | | | |
| | | | * | | Append rpm-specific files to the source tarball.Hubert Plociniczak2008-09-122-21/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Cleaned up the rpm Makefile.
| | * | | | | produce a nicer error message for common queue disappearance casebug19491Matthias Radestock2008-10-131-11/+11
| | | | | | |
| | * | | | | exit with a proper protocol error when commit/rollback failMatthias Radestock2008-10-131-2/+4
| | |/ / / /
| * | | | | merge bug19250 into defaultTony Garnock-Jones2008-10-300-0/+0
| |\ \ \ \ \
| * \ \ \ \ \ merged default into bug19250Tony Garnock-Jones2008-10-301-23/+42
| |\ \ \ \ \ \ | | |/ / / / / | |/| | | | |
| | * | | | | Fixed QA remarksBen Hood2008-10-161-8/+3
| | | | | | |
| | * | | | | Merged default into bug19250Ben Hood2008-10-166-73/+87
| | |\ \ \ \ \ | | | |/ / / /
| | * | | | | Implemented queue.unbindBen Hood2008-10-041-23/+47
| | | | | | |
| * | | | | | Merge bug18732 into defaultHubert Plociniczak2008-10-250-0/+0
| |\ \ \ \ \ \ | | | |_|_|/ / | | |/| | | |
| * | | | | | merge default into bug18732bug18732Matthias Radestock2008-10-1750-1304/+1376
| |\ \ \ \ \ \ | | |/ / / / /
| | * | | | | Merge bug19489 into defaultHubert Plociniczak2008-10-171-5/+3
| | |\ \ \ \ \
| | | * | | | | don't log errors during deliverybug19489Matthias Radestock2008-10-131-5/+3
| | | | |/ / / | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the target queue died normally we don't care, and if it died abnormally the reason is logged by the queue supervisor. In both cases we treat the message as unrouted.
| | * | | | | Merge bug19329 into defaultHubert Plociniczak2008-10-171-1/+3
| | |\ \ \ \ \ | | | |/ / / / | | |/| | | |
| | | * | | | Create non-native debian packagesbug19329Hubert Plociniczak2008-09-051-1/+3
| | | | | | |
| * | | | | | Migrate branch bug18732Tony Garnock-Jones2008-07-033-11/+41
| | | | | | |
* | | | | | | hibernate writersMatthias Radestock2008-10-251-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With this in place I am finally unable to make rabbit grind to a halt due to garbage being held by idle processes.
* | | | | | | hibernate buffering_proxiesMatthias Radestock2008-10-241-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | My tests got stuck after about an hour, and the cause was buffering_proxies holding on to memory
* | | | | | | merge bug19468_channels into bug19468Matthias Radestock2008-10-220-0/+0
|\ \ \ \ \ \ \
* | | | | | | | hibernate some processes to conserve memorybug19468_channelsMatthias Radestock2008-10-212-34/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In my experiments I encountered situations where rabbit would not recover from a high memory alert even though all messages had been drained from it. By inspecting the running processes I determined that queue and channel processes sometimes hung on to garbage. Erlang's gc is per-process and triggered by process reduction counts, which means an idle process will never perform a gc. This explains the behaviour - the publisher channel goes idle when channel flow control is activated and the queue process goes idle once all messages have been drained from it. Hibernating idle processes forces a gc, as well as generally reducing memory consumption. Currently only channel and queue processes are hibernating, since these are the only two that seemed to be causing problems in my tests. We may want to extend hibernation to other processes in the future.
* | | | | | | | raise memory alarm thresholdMatthias Radestock2008-10-212-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The default 80% is just too low for many systems - I have less than that on tanto most of the time. It remains to be seen whether the new figure works ok for most users.
* | | | | | | | merge bug19552 into bug19468_channelsMatthias Radestock2008-10-167-78/+95
|\ \ \ \ \ \ \ \ | | |_|_|_|_|_|/ | |/| | | | | | | | | | | | | | The former triggered errors in the latter
| * | | | | | | fix 'duplicate_next' error when sending messages directly to proxied processbug19552Matthias Radestock2008-10-161-5/+8
| | |_|/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The buffering_proxy:mainloop was unconditionally requesting new messages from the proxy. It should only do that when it has just finished handling the messages given to it by the proxy in response to a previous request, and not after handling a direct message.
| * | | | | | merge bug19332 into defaultMatthias Radestock2008-10-123-4/+6
| |\ \ \ \ \ \
| | * \ \ \ \ \ merge default into bug19332bug19332Hubert Plociniczak2008-09-153-4/+6
| | |\ \ \ \ \ \ | | | |_|_|_|_|/ | | |/| | | | |
| | | * | | | | Fixed checking build dependencies in rpmsHubert Plociniczak2008-09-152-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | while building on Debian systems. Unfortunately .spec doesn't have 'not' logic.
| | | * | | | | Added python-json as a dependency to the debian/rpm packagesHubert Plociniczak2008-09-042-1/+2
| | | | |_|/ / | | | |/| | |
| * | | | | | merge bug19485 into defaultHubert Plociniczak2008-10-052-50/+63
| |\ \ \ \ \ \
| | * \ \ \ \ \ Merged bug19219 into defaultBen Hood2008-10-042-3/+11
| | |\ \ \ \ \ \ | | | | |_|_|_|/ | | | |/| | | |
| | * | | | | | cosmetic refactoringbug19219Matthias Radestock2008-10-011-7/+7
| | | | | | | |
| | * | | | | | oopsMatthias Radestock2008-09-301-1/+1
| | | | | | | |
| | * | | | | | modulate gen_server:call timeout when doing work in parallelMatthias Radestock2008-09-302-50/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we fire off lots of gen_server:calls in parallel, we may create enough work for the VM to cause the calls to time out - since the amount of work that can actually be done in parallel is finite. The fix is to adjust the timeout based on the total workload. Alternatively we could not have any timeout at all, but that is bad Erlang style since a small error somewhere could result in stuck processes. I moved the parallelisation - and hence timeout modulation - from the channel into the amqqueue module, changing the API in the process - commit, rollback and notify_down now all operate on lists of QPids (and I've renamed the functions to make that clear). The alternative would have been to add Timeout params to these three functions, but I reckon the API is cleaner this way, particularly considering that rollback doesn't actually do a call - it does a cast and hence doesn't require a timeout - so in the alternative API we'd either have to expose that fact indirectly by not having a Timeout param, or have a bogus Timeout param, neither of which is particularly appealing. I considered making the functions take sets instead of lists, since that's what the channel code produces, plus sets have a more efficient length operation. However, API-wise I reckon lists are nicer, plus it means I can give a more precise type to dialyzer - sets would be opaque and non-polymorphic.
| * | | | | | | propagate channel/connection errors when in closing statebug19485Matthias Radestock2008-10-031-19/+18
| | |/ / / / / | |/| | | | |