21 months agoCope with removes overtaking writes bug23142
Matthew Sackman <matthew@rabbitmq.com> [Wed, 18 Aug 2010 22:10:07 +0100] rev 4503
Cope with removes overtaking writes

21 months agoMerging default into ug 23142 bug23142
Matthew Sackman <matthew@rabbitmq.com> [Wed, 18 Aug 2010 22:09:22 +0100] rev 4502
Merging default into ug 23142

21 months agoMerging default into bug23133 bug23133
Matthew Sackman <matthew@rabbitmq.com> [Wed, 18 Aug 2010 17:47:09 +0100] rev 4501
Merging default into bug23133

21 months agofixed a small empty-set bug bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Wed, 18 Aug 2010 16:43:33 +0100] rev 4500
fixed a small empty-set bug

21 months agodeleting a queue causes all of its messages to be puback'd bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Wed, 18 Aug 2010 15:03:56 +0100] rev 4499
deleting a queue causes all of its messages to be puback'd

21 months agoconfirm transient messages only after basic.return bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Wed, 18 Aug 2010 12:12:49 +0100] rev 4498
confirm transient messages only after basic.return

21 months agoDon't ever keep the recovery process waiting, regardless of whether the queue is going down or not default
Matthew Sackman <matthew@rabbitmq.com> [Wed, 18 Aug 2010 17:40:19 +0100] rev 4497
Don't ever keep the recovery process waiting, regardless of whether the queue is going down or not

21 months agoA rather crucial infinity missing
Matthew Sackman <matthew@rabbitmq.com> [Wed, 18 Aug 2010 17:29:35 +0100] rev 4496
A rather crucial infinity missing

21 months agoAbstract refcount == 0 to imply not_found for appropriate call sites bug23133
Matthew Sackman <matthew@rabbitmq.com> [Wed, 18 Aug 2010 16:31:35 +0100] rev 4495
Abstract refcount == 0 to imply not_found for appropriate call sites

21 months agoBy this stage of the client-read, we know a GC can't start and can't be in progress. Thus even if the refcount is 0, we're still safe to read it. What's more, this area of code has never made provision for the index_lookup to return a not_found - it will crash if that happens. Thus if the implicit assumption is that the message must exist, then by the same token, we know the refcount will always be > 0 bug23133
Matthew Sackman <matthew@rabbitmq.com> [Wed, 18 Aug 2010 16:24:22 +0100] rev 4494
By this stage of the client-read, we know a GC can't start and can't be in progress. Thus even if the refcount is 0, we're still safe to read it. What's more, this area of code has never made provision for the index_lookup to return a not_found - it will crash if that happens. Thus if the implicit assumption is that the message must exist, then by the same token, we know the refcount will always be > 0

21 months agoAbstraction of the inner write function bug23133
Matthew Sackman <matthew@rabbitmq.com> [Wed, 18 Aug 2010 16:15:58 +0100] rev 4493
Abstraction of the inner write function

21 months agoMerge in bug23145 (put plugin expand dir in db dir)
Michael Bridgen <mikeb@rabbitmq.com> [Wed, 18 Aug 2010 16:11:50 +0100] rev 4492
Merge in bug23145 (put plugin expand dir in db dir)

21 months agocosmetic bug23133
Matthew Sackman <matthew@rabbitmq.com> [Wed, 18 Aug 2010 15:54:29 +0100] rev 4491
cosmetic

21 months agoBecause we can increment the refcount back above 0, the calculation of the contiguous top needs to be contiguousTop + totalSize, because the validtotalsize can contain data that's well beyond the old contiguous top bug23133
Matthew Sackman <matthew@rabbitmq.com> [Wed, 18 Aug 2010 15:50:42 +0100] rev 4490
Because we can increment the refcount back above 0, the calculation of the contiguous top needs to be contiguousTop + totalSize, because the validtotalsize can contain data that's well beyond the old contiguous top

21 months agoEliminate RABBITMQ_PLUGINS_EXPAND_DIR bug23145
David Wragg <david@rabbitmq.com> [Wed, 18 Aug 2010 14:52:40 +0100] rev 4489
Eliminate RABBITMQ_PLUGINS_EXPAND_DIR

There were a number of issues with RABBITMQ_PLUGINS_EXPAND_DIR:

- It was undocumented in the context of the generic unix package, and
if unwisely set could do an effective "rm -rf" in an unintended
location.

- It did not take account of the possibility that multiple nodes could
be starting at once, and so doing plugins activation
simultanteously.

Instead, use RABBITMQ_MNESIA_DIR/plugins-scratch. This avoids the
need to extend the generic unix package documentation, the location is
node-specific, and the distinctive plugins-scratch subdirectory
reduces the risk of unintended file deletions.

21 months agoMerge default into bug 23133 bug23133
Matthew Sackman <matthew@rabbitmq.com> [Wed, 18 Aug 2010 14:47:53 +0100] rev 4488
Merge default into bug 23133

21 months agoBacked out changeset c47670da4830 - I decided the dedup cache shouldn't be mangled with. bug23133
Matthew Sackman <matthew@rabbitmq.com> [Wed, 18 Aug 2010 14:43:20 +0100] rev 4487
Backed out changeset c47670da4830 - I decided the dedup cache shouldn't be mangled with.

21 months agomerge bug23142 into default
Matthias Radestock <matthias@rabbitmq.com> [Wed, 18 Aug 2010 14:42:12 +0100] rev 4486
merge bug23142 into default

21 months agoMinor tweaks bug23142
Matthew Sackman <matthew@rabbitmq.com> [Wed, 18 Aug 2010 13:15:17 +0100] rev 4485
Minor tweaks

21 months agoeliminate duplicate write messages completely, and simply rely on the pending write count in the cur ets file cache to indicate the delta to the refcount bug23142
Matthew Sackman <matthew@rabbitmq.com> [Wed, 18 Aug 2010 12:57:34 +0100] rev 4484
eliminate duplicate write messages completely, and simply rely on the pending write count in the cur ets file cache to indicate the delta to the refcount

21 months agotold dialyzer to check for more things bug23047
Alexandru Scvortov <alexandru@rabbitmq.com> [Wed, 18 Aug 2010 10:24:25 +0100] rev 4483
told dialyzer to check for more things

As Matthew suggested, I've added {wranings, [underspecs, behaiviours,
race_conditions]} to dialyzer's options. As a result, we now have 56
warnings instead of just the 4. Most of them are underspecs (i.e. we
say a function returns any() but dialyzer's figured out that's overly
general).

21 months agosmall simplifying refactor
Matthias Radestock <matthias@rabbitmq.com> [Wed, 18 Aug 2010 06:27:12 +0100] rev 4482
small simplifying refactor

21 months agotake current memory alarms status into account straight away
Matthias Radestock <matthias@rabbitmq.com> [Wed, 18 Aug 2010 04:24:34 +0100] rev 4481
take current memory alarms status into account straight away
This does in fact not alter the behaviour at all due to the following:

- if the alarm is active the alarm registration will call the handler
straight way, which will send a {conserve_memory, true} message to the
reader.
- the reply to the alarm registration is sent after that, and from the
same process - the alarm process - so by the time the reader loops
around the mainloop again the {conserve_memory, true} message is
guaranteed to be in the mailbox
- on looping around, the reader request a frame_header from the
socket. The reader has already sent connection.open_ok to the client,
and the client may have started sending commands straight away. But
all the reader is going to see of that to start with is an {inet_async,
...} message for a frame_header. That is guaranteed to end up in the
mailbox after the {conserve_memory, true} message.

Thus the reader is guaranteed to process the {conserve_memory, true}
message before handling any more data from the socket.

With this change it is rather more obvious that the memory alarm
status gets taken into account before any more client data is
processed.

21 months agotreat the dedup cache the same way as the index - permit 0 ref_counts and prune on file roll bug23133
Matthew Sackman <matthew@rabbitmq.com> [Tue, 17 Aug 2010 18:55:44 +0100] rev 4480
treat the dedup cache the same way as the index - permit 0 ref_counts and prune on file roll

21 months agoMerging default into bug 15930 bug15930
Matthew Sackman <matthew@rabbitmq.com> [Tue, 17 Aug 2010 18:37:35 +0100] rev 4479
Merging default into bug 15930

21 months agoMerging default into bug 23133 bug23133
Matthew Sackman <matthew@rabbitmq.com> [Tue, 17 Aug 2010 18:37:22 +0100] rev 4478
Merging default into bug 23133

21 months agoThe solution is very simple: In the case where the fhc sends out requests to close file handles, the clients might respond very quickly. The fhc will then gather these responses (say, just updates, not closes) and then will sit there for 2 seconds until the timer goes off. Thus the solution is just to subtract the timer period from the calculated average: i.e. the expression is to say 'close file handles that haven't been used for N seconds from NOW' rather than the previous 'close file handles that haven't been used for N seconds from NOW - 2 seconds ago'. This works very nicely and whilst the fhc can get quite busy when there are more users of file handles than there are file handles available, that is hardly surprising, and the fact is starvation is prevented and processes are promptly serviced bug23139
Matthew Sackman <matthew@rabbitmq.com> [Tue, 17 Aug 2010 18:08:47 +0100] rev 4477
The solution is very simple: In the case where the fhc sends out requests to close file handles, the clients might respond very quickly. The fhc will then gather these responses (say, just updates, not closes) and then will sit there for 2 seconds until the timer goes off. Thus the solution is just to subtract the timer period from the calculated average: i.e. the expression is to say 'close file handles that haven't been used for N seconds from NOW' rather than the previous 'close file handles that haven't been used for N seconds from NOW - 2 seconds ago'. This works very nicely and whilst the fhc can get quite busy when there are more users of file handles than there are file handles available, that is hardly surprising, and the fact is starvation is prevented and processes are promptly serviced

21 months agoTrack blocked pids explicitly bug23139
Matthew Sackman <matthew@rabbitmq.com> [Tue, 17 Aug 2010 17:42:23 +0100] rev 4476
Track blocked pids explicitly

21 months agorefactoring bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 17 Aug 2010 17:33:13 +0100] rev 4475
refactoring

21 months agopublisher acks for persistent messages bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 17 Aug 2010 17:05:44 +0100] rev 4474
publisher acks for persistent messages

Acknowledgements are sent to the producer in the following cases
(assuming the channel in confirm mode):
- a transient message has been received (i.e. it is ack'd
immediately),
- a basic return has been sent (the ack is sent immediately
afterwards),
- a persistent message has been consumed [by a consumer] or got [via
basic.get] and ack'd by the client (or the retrieval was no-ack),
- a persistent message has been written to disk (both the message
and its index).

At least in theory, every message published on a confirm channel will
at some point be ack'd. A message is only ack'd once and the reason
it was ack'd is hidden.

21 months agoqueue_index keeps track of which messages have been published but not written to disk bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 17 Aug 2010 15:51:14 +0100] rev 4473
queue_index keeps track of which messages have been published but not written to disk

There are 2 ways queue_index writes something to disk:
- the journal is synced, and
- the journal is flushed (i.e. scattered across many files and those
files closed).

Since queue_index is the same process as variable_queue, we just keep
a list of guids that have been published and we just call an on_sync
handler whenever these are written to disk.

21 months agopersistent messages are ack'd only after the consumer acks it bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 17 Aug 2010 12:53:18 +0100] rev 4472
persistent messages are ack'd only after the consumer acks it

21 months agomove msg_seq_no from #basic_message{} to #delivery{} bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 17 Aug 2010 10:45:33 +0100] rev 4471
move msg_seq_no from #basic_message{} to #delivery{}

21 months agoCorrect monitoring and actions upon DOWN messages. Note this is especially subtle for obtains, which effectively implicitly allocates temporarily to the blocked caller (FromPid) whilst monitoring it, and then transfers this to the ForPid when possible. Note the ForPid can die before the obtains is processed, which which point the FromPid must be replied to immediately. bug23138
Matthew Sackman <matthew@rabbitmq.com> [Tue, 17 Aug 2010 17:24:27 +0100] rev 4470
Correct monitoring and actions upon DOWN messages. Note this is especially subtle for obtains, which effectively implicitly allocates temporarily to the blocked caller (FromPid) whilst monitoring it, and then transfers this to the ForPid when possible. Note the ForPid can die before the obtains is processed, which which point the FromPid must be replied to immediately.

21 months agomerge bug23135 into default
Matthias Radestock <matthias@rabbitmq.com> [Tue, 17 Aug 2010 15:01:41 +0100] rev 4469
merge bug23135 into default

21 months agoobtain_and_release_on_death => obtain, and minor refactor of tcp acceptor bug23135
Matthew Sackman <matthew@rabbitmq.com> [Tue, 17 Aug 2010 14:05:52 +0100] rev 4468
obtain_and_release_on_death => obtain, and minor refactor of tcp acceptor

21 months agoCombine obtains and release_on_death bug23135
Matthew Sackman <matthew@rabbitmq.com> [Tue, 17 Aug 2010 13:54:03 +0100] rev 4467
Combine obtains and release_on_death

21 months agobug22906 merged into junk junk
Marek Majkowski <marek@rabbitmq.com> [Tue, 17 Aug 2010 13:53:11 +0100] rev 4466
bug22906 merged into junk

21 months agomerge bug23132 into default
Matthias Radestock <matthias@rabbitmq.com> [Tue, 17 Aug 2010 12:54:57 +0100] rev 4465
merge bug23132 into default

21 months agoMinor corrections bug23132
Matthew Sackman <matthew@rabbitmq.com> [Tue, 17 Aug 2010 12:20:22 +0100] rev 4464
Minor corrections

21 months agofirst stab at keeping track of when messages are synced to disk bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 17 Aug 2010 09:44:49 +0100] rev 4463
first stab at keeping track of when messages are synced to disk

21 months agorefactoring bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Mon, 16 Aug 2010 11:31:48 +0100] rev 4462
refactoring

21 months agoPubAcks are de-dupped in rabbit_channel bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Sun, 15 Aug 2010 22:44:38 +0100] rev 4461
PubAcks are de-dupped in rabbit_channel

21 months agocosmetic bug23132
Matthias Radestock <matthias@rabbitmq.com> [Mon, 16 Aug 2010 21:44:24 +0100] rev 4460
cosmetic

21 months agotweak bug23132
Matthias Radestock <matthias@rabbitmq.com> [Mon, 16 Aug 2010 21:21:23 +0100] rev 4459
tweak

21 months agotweak bug23132
Matthias Radestock <matthias@rabbitmq.com> [Mon, 16 Aug 2010 21:18:44 +0100] rev 4458
tweak

21 months agotweak bug23132
Matthias Radestock <matthias@rabbitmq.com> [Mon, 16 Aug 2010 21:16:04 +0100] rev 4457
tweak

21 months agoobtain_limit can be 'infinity' bug23132
Matthias Radestock <matthias@rabbitmq.com> [Mon, 16 Aug 2010 21:13:09 +0100] rev 4456
obtain_limit can be 'infinity'

21 months agocosmetic bug23132
Matthias Radestock <matthias@rabbitmq.com> [Mon, 16 Aug 2010 21:11:54 +0100] rev 4455
cosmetic

21 months agorefactor: incorporate limit checking into maybe_reduce bug23132
Matthias Radestock <matthias@rabbitmq.com> [Mon, 16 Aug 2010 21:08:51 +0100] rev 4454
refactor: incorporate limit checking into maybe_reduce

21 months agocosmetic bug23132
Matthias Radestock <matthias@rabbitmq.com> [Mon, 16 Aug 2010 20:00:02 +0100] rev 4453
cosmetic

21 months agoopens => open. obtains => obtain bug23132
Matthew Sackman <matthew@rabbitmq.com> [Mon, 16 Aug 2010 16:52:30 +0100] rev 4452
opens => open. obtains => obtain

21 months agoFinally, it works. Important points: 1) remove elders from blocked clients so that we calculate average based on pids that can actually respond. 2) reduce whenever we have pending_opens to ensure we rotate the strike. bug23132
Matthew Sackman <matthew@rabbitmq.com> [Mon, 16 Aug 2010 16:49:00 +0100] rev 4451
Finally, it works. Important points: 1) remove elders from blocked clients so that we calculate average based on pids that can actually respond. 2) reduce whenever we have pending_opens to ensure we rotate the strike.

21 months agoWhoops. Be consistent about comparisons bug23132
Matthew Sackman <matthew@rabbitmq.com> [Mon, 16 Aug 2010 16:14:53 +0100] rev 4450
Whoops. Be consistent about comparisons

21 months agoSockets have priority up to 90%. Processes have the full 100% but at lower priority. bug23132
Matthew Sackman <matthew@rabbitmq.com> [Mon, 16 Aug 2010 16:08:17 +0100] rev 4449
Sockets have priority up to 90%. Processes have the full 100% but at lower priority.

21 months agoMake sure tests have enough file descriptors bug23132
Matthew Sackman <matthew@rabbitmq.com> [Mon, 16 Aug 2010 14:04:59 +0100] rev 4448
Make sure tests have enough file descriptors

21 months agoWhoops bug23132
Matthew Sackman <matthew@rabbitmq.com> [Mon, 16 Aug 2010 13:41:42 +0100] rev 4447
Whoops

21 months agoSplit obtains in two : one for open requests (higher priority) and one for obtains requests (lower priority, and a lower limit) bug23132
Matthew Sackman <matthew@rabbitmq.com> [Mon, 16 Aug 2010 13:40:39 +0100] rev 4446
Split obtains in two : one for open requests (higher priority) and one for obtains requests (lower priority, and a lower limit)

21 months agoAllow the fhc server to request the client closes file handles before granting an open - thus prevents deadlocks bug23132
Matthew Sackman <matthew@rabbitmq.com> [Mon, 16 Aug 2010 12:13:56 +0100] rev 4445
Allow the fhc server to request the client closes file handles before granting an open - thus prevents deadlocks

21 months agoMerging default into bug 23132 bug23132
Matthew Sackman <matthew@rabbitmq.com> [Mon, 16 Aug 2010 11:28:29 +0100] rev 4444
Merging default into bug 23132

21 months agobug23129
Matthias Radestock <matthias@rabbitmq.com> [Mon, 16 Aug 2010 07:14:32 +0100] rev 4443
bug23129

21 months agominor refactor bug23129
Matthias Radestock <matthias@rabbitmq.com> [Mon, 16 Aug 2010 05:31:35 +0100] rev 4442
minor refactor

21 months agocosmetic bug23129
Matthias Radestock <matthias@rabbitmq.com> [Mon, 16 Aug 2010 05:31:10 +0100] rev 4441
cosmetic

21 months agoPermit 0 ref counts and don't actually forget about messages until the file gets removed bug23133
Matthew Sackman <matthew@rabbitmq.com> [Mon, 16 Aug 2010 00:13:42 +0100] rev 4440
Permit 0 ref counts and don't actually forget about messages until the file gets removed

21 months agodon't log file summary recover error bug23129
Matthias Radestock <matthias@rabbitmq.com> [Sun, 15 Aug 2010 20:15:59 +0100] rev 4439
don't log file summary recover error
the details aren't that important and get in the way of a fresh
startup

21 months agodon't attempt to recover file summary when we know there isn't one bug23129
Matthias Radestock <matthias@rabbitmq.com> [Sun, 15 Aug 2010 17:01:22 +0100] rev 4438
don't attempt to recover file summary when we know there isn't one

21 months agocosmetic bug23129
Matthias Radestock <matthias@rabbitmq.com> [Sun, 15 Aug 2010 16:46:32 +0100] rev 4437
cosmetic

21 months agoObtain from the fhc sync, and obtain it before we actually open the file bug23132
Matthew Sackman <matthew@rabbitmq.com> [Sun, 15 Aug 2010 16:11:15 +0100] rev 4436
Obtain from the fhc sync, and obtain it before we actually open the file

21 months agomore refactoring bug23129
Matthias Radestock <matthias@rabbitmq.com> [Sun, 15 Aug 2010 15:36:59 +0100] rev 4435
more refactoring

21 months agoyet more refactoring bug23129
Matthias Radestock <matthias@rabbitmq.com> [Sun, 15 Aug 2010 15:17:36 +0100] rev 4434
yet more refactoring

21 months agonow it compiles bug23129
Matthias Radestock <matthias@rabbitmq.com> [Sun, 15 Aug 2010 15:02:30 +0100] rev 4433
now it compiles

21 months agominor refactor bug23129
Matthias Radestock <matthias@rabbitmq.com> [Sun, 15 Aug 2010 14:58:51 +0100] rev 4432
minor refactor

21 months agocosmetic bug23129
Matthias Radestock <matthias@rabbitmq.com> [Sun, 15 Aug 2010 14:51:27 +0100] rev 4431
cosmetic

21 months agominor refactor bug23129
Matthias Radestock <matthias@rabbitmq.com> [Sun, 15 Aug 2010 14:49:47 +0100] rev 4430
minor refactor

21 months agoRefactorings and improvents to msg_store startup bug23129
Matthew Sackman <matthew@rabbitmq.com> [Sun, 15 Aug 2010 13:55:00 +0100] rev 4429
Refactorings and improvents to msg_store startup

21 months agoThe underlying call to file:copy will not make use of any erlang-level read buffer, so don't bother with it. bug23129
Matthew Sackman <matthew@rabbitmq.com> [Sun, 15 Aug 2010 13:35:18 +0100] rev 4428
The underlying call to file:copy will not make use of any erlang-level read buffer, so don't bother with it.

21 months agoImprove, correct and document msg store recovery bug23129
Matthew Sackman <matthew@rabbitmq.com> [Sun, 15 Aug 2010 13:32:32 +0100] rev 4427
Improve, correct and document msg store recovery

21 months agoCorrect and simplify the recovery from crashed compactions bug23129
Matthew Sackman <matthew@rabbitmq.com> [Sun, 15 Aug 2010 11:03:22 +0100] rev 4426
Correct and simplify the recovery from crashed compactions

21 months agoWhen recovering, because of the possibility of finding the same msg twice, ensure that we only count and include the first copy. Other copies are then ignored. bug23129
Matthew Sackman <matthew@rabbitmq.com> [Sat, 14 Aug 2010 20:27:07 +0100] rev 4425
When recovering, because of the possibility of finding the same msg twice, ensure that we only count and include the first copy. Other copies are then ignored.

21 months agoA msg can appear > once in the same file because of multiple queues receiving the same msg. When we iterate through the msgs we find in the file, we must check that the msg corresponds to the msg in the index, by matching not just with guid but also with offset. Also just for fun, assert the total_size matches. Also, fixed a mistake in file_handle_cache where the dirty flag on the destination of copy wasn't being set. bug23129
Matthew Sackman <matthew@rabbitmq.com> [Sat, 14 Aug 2010 20:12:52 +0100] rev 4424
A msg can appear > once in the same file because of multiple queues receiving the same msg. When we iterate through the msgs we find in the file, we must check that the msg corresponds to the msg in the index, by matching not just with guid but also with offset. Also just for fun, assert the total_size matches. Also, fixed a mistake in file_handle_cache where the dirty flag on the destination of copy wasn't being set.

21 months agotypo + reformatting bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Fri, 13 Aug 2010 18:05:29 +0100] rev 4423
typo + reformatting

21 months agorefactoring bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Fri, 13 Aug 2010 17:42:03 +0100] rev 4422
refactoring

What's done:
- PubAck after transient messages
- PubAck after basic.returns
- PubAck after message delivered to a consumer (disregarding
consumer acks)
- PubAck after message got
- out of order ack'ing
- multiple ack'ing

Whant's not done:
- PubAck de-duplication
- PubAck after message hits disk

21 months agopuback for persistent non-mandatory, non-immediate, unrouted messages bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Fri, 13 Aug 2010 17:16:16 +0100] rev 4421
puback for persistent non-mandatory, non-immediate, unrouted messages

21 months agopubacks are sent right after basic.returns bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Fri, 13 Aug 2010 16:36:37 +0100] rev 4420
pubacks are sent right after basic.returns

21 months agosimplified code a bit bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Fri, 13 Aug 2010 16:16:44 +0100] rev 4419
simplified code a bit

21 months agopuback is also sent after something basic.gets the message bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Fri, 13 Aug 2010 16:08:19 +0100] rev 4418
puback is also sent after something basic.gets the message

21 months agopartial acks for persistent messages bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Fri, 13 Aug 2010 15:44:04 +0100] rev 4417
partial acks for persistent messages

The publisher gets an ack in the following cases:
- the broker receives a transient message (after the exchange has
been resolved),
- the broker sends the persistent message to a consumer (regardless
of whether the consumer acks that message, rejects it, etc.).

Still to do:
- the broker writes the message to disk.

21 months agoonly transient messages are immediately ack'd (so far) bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Fri, 13 Aug 2010 12:21:01 +0100] rev 4416
only transient messages are immediately ack'd (so far)

In addition, a message sequence number is recorded in the #delivery{}
sent to the exchange. If the message doesn't need to be ack'd, this
sequence number is undefined.

21 months agonew logic bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Fri, 13 Aug 2010 11:55:46 +0100] rev 4415
new logic

Message sequence numbers are assigned uniquely when the basic.publish
is received. If confirm is not enabled, this is undefined.

Rabbit_channel gains a new API method: confirm. This schedules an ack
for the given sequence number. The idea is that repeated acks are
allowed at this point and de-duplication is done by the channel. This
way, in order to confirm a message, another module just needs to
know 1) the channel and 2) the message sequence number.

No de-duplication is done at this point.

21 months agoRemove dead code in tests bug15930
Matthew Sackman <matthew@rabbitmq.com> [Fri, 13 Aug 2010 16:32:47 +0100] rev 4414
Remove dead code in tests

21 months agoMove the linking into the start_channel function bug15930
Matthew Sackman <matthew@rabbitmq.com> [Fri, 13 Aug 2010 16:16:49 +0100] rev 4413
Move the linking into the start_channel function

21 months agoReduce calls to connection_sup:reader bug15930
Matthew Sackman <matthew@rabbitmq.com> [Fri, 13 Aug 2010 16:04:11 +0100] rev 4412
Reduce calls to connection_sup:reader

21 months agoSpecs, moving things around, and removing dead code bug15930
Matthew Sackman <matthew@rabbitmq.com> [Fri, 13 Aug 2010 15:49:56 +0100] rev 4411
Specs, moving things around, and removing dead code

21 months agoCosmetics bug15930
Matthew Sackman <matthew@rabbitmq.com> [Fri, 13 Aug 2010 15:02:48 +0100] rev 4410
Cosmetics

21 months agoRemove writer flush and improve sync methods bug15930
Matthew Sackman <matthew@rabbitmq.com> [Fri, 13 Aug 2010 14:54:20 +0100] rev 4409
Remove writer flush and improve sync methods

21 months agobug 23118 merged into default (windows file descriptors limit)
Marek Majkowski <marek@rabbitmq.com> [Fri, 13 Aug 2010 14:37:41 +0100] rev 4408
bug 23118 merged into default (windows file descriptors limit)

21 months agoMerging default into bug 15930 bug15930
Matthew Sackman <matthew@rabbitmq.com> [Fri, 13 Aug 2010 14:13:22 +0100] rev 4407
Merging default into bug 15930

21 months agoImprovements to comments bug23118
Matthew Sackman <matthew@rabbitmq.com> [Fri, 13 Aug 2010 12:44:49 +0100] rev 4406
Improvements to comments

21 months agoReduce the file descriptor limit for Windows to 512 bug23118
Matthew Sackman <matthew@rabbitmq.com> [Fri, 13 Aug 2010 11:22:47 +0100] rev 4405
Reduce the file descriptor limit for Windows to 512

21 months agomerge bug23120 into default
Alexandru Scvortov <alexandru@rabbitmq.com> [Fri, 13 Aug 2010 10:43:52 +0100] rev 4404
merge bug23120 into default

21 months agosome instrumentation bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Fri, 13 Aug 2010 10:25:17 +0100] rev 4403
some instrumentation

21 months agoonly have one ack timer running at a time bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Thu, 12 Aug 2010 15:07:06 +0100] rev 4402
only have one ack timer running at a time

21 months agotype; all java tests pass now bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Thu, 12 Aug 2010 14:52:46 +0100] rev 4401
type; all java tests pass now

21 months agominor clarification bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Thu, 12 Aug 2010 14:39:03 +0100] rev 4400
minor clarification

21 months agomerge default into bug15930 bug15930
Matthias Radestock <matthias@rabbitmq.com> [Fri, 13 Aug 2010 06:35:01 +0100] rev 4399
merge default into bug15930

21 months agotiny simplifying refactor
Matthias Radestock <matthias@rabbitmq.com> [Fri, 13 Aug 2010 06:32:50 +0100] rev 4398
tiny simplifying refactor

21 months agocosmetic: friendlier type name
Matthias Radestock <matthias@rabbitmq.com> [Fri, 13 Aug 2010 06:26:09 +0100] rev 4397
cosmetic: friendlier type name

21 months agorefactor: extract termination Reason analysis bug15930
Matthias Radestock <matthias@rabbitmq.com> [Fri, 13 Aug 2010 06:08:40 +0100] rev 4396
refactor: extract termination Reason analysis
from handle_dependent_exit and wait_for_channel_termination

21 months agorevert the change from 'stop' to 'flush_stop' bug15930
Matthias Radestock <matthias@rabbitmq.com> [Fri, 13 Aug 2010 06:01:45 +0100] rev 4395
revert the change from 'stop' to 'flush_stop'
and move the writer:flush call to a place where the need for it is
more obvious.

21 months agoremove dead code bug15930
Matthias Radestock <matthias@rabbitmq.com> [Fri, 13 Aug 2010 05:58:16 +0100] rev 4394
remove dead code

21 months agocosmetic bug15930
Matthias Radestock <matthias@rabbitmq.com> [Fri, 13 Aug 2010 05:58:05 +0100] rev 4393
cosmetic

21 months agouse consistent return types for start/start_link functions bug23120
Matthias Radestock <matthias@rabbitmq.com> [Fri, 13 Aug 2010 04:26:45 +0100] rev 4392
use consistent return types for start/start_link functions

21 months agorefactor timer code; looks more like msg_store now bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Thu, 12 Aug 2010 14:08:34 +0100] rev 4391
refactor timer code; looks more like msg_store now

21 months agomerge bug23095 into default
Matthias Radestock <matthias@rabbitmq.com> [Thu, 12 Aug 2010 12:45:18 +0100] rev 4390
merge bug23095 into default

21 months agorefactor + timer cancelled on channel terminate bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Thu, 12 Aug 2010 12:20:50 +0100] rev 4389
refactor + timer cancelled on channel terminate

When the channel terminates (for whatever reason), any outstanding
acks are simply lost. The reasoning behind this is that:
1) if the channel closed due to an exception, it should close immediately;
2) if the client wants to close the channel, but receive all of the
acks first, it should wait for the acks and only then send
channel.close.

21 months agosupport for multiple confirmations bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Thu, 12 Aug 2010 11:04:13 +0100] rev 4388
support for multiple confirmations

Suppose the channel is in confirm multiple mode, and acks for the
following messages are outstanding:

> 3 4 5 7 10 13

The server sends one confirm-up-to 5 ack and three more acks for 7, 10
and 13.

If the client receives a basic.ack, it should interpret it like this:

basic.ack{delivery-tag=N, multiple=false} => the published message
with sequence number N has been handled

basic.ack{delivery-tag=N, multiple=true} => all the published
messages with sequence numbers up to and including N have been
handled

21 months agoMerging bug 23095 into bug 15930 bug15930
Matthew Sackman <matthew@rabbitmq.com> [Thu, 12 Aug 2010 11:50:27 +0100] rev 4387
Merging bug 23095 into bug 15930

21 months agoMerging default into bug23095 bug23095
Matthew Sackman <matthew@rabbitmq.com> [Thu, 12 Aug 2010 11:41:02 +0100] rev 4386
Merging default into bug23095

21 months agodo not ignore 'normal' permanent child terminations during shutdown bug23095
Matthias Radestock <matthias@rabbitmq.com> [Thu, 12 Aug 2010 06:16:57 +0100] rev 4385
do not ignore 'normal' permanent child terminations during shutdown
If such a termination is worth reporting while the supervisor is
running, it sure is still worth reporting when it's shutting down.

This involves reverting all the changes related to ignoring normal
termination during shutdown and instead adding some logic a bit higher
up the call chain.

21 months agonever ignore 'noproc' during shutdown bug23095
Matthias Radestock <matthias@rabbitmq.com> [Thu, 12 Aug 2010 05:39:02 +0100] rev 4384
never ignore 'noproc' during shutdown
We have no idea why the child died. Furthermore, we will only ever get
this when a child has unlinked itself from the supervisor, which is
naughty and shouldn't go unnoticed.

21 months agowe must always clear both the 'EXIT' and 'DOWN' message bug23095
Matthias Radestock <matthias@rabbitmq.com> [Thu, 12 Aug 2010 05:23:40 +0100] rev 4383
we must always clear both the 'EXIT' and 'DOWN' message

21 months agocosmetic and minor refactoring bug23095
Matthias Radestock <matthias@rabbitmq.com> [Thu, 12 Aug 2010 05:19:28 +0100] rev 4382
cosmetic and minor refactoring

21 months agocosmetic
Matthias Radestock <matthias@rabbitmq.com> [Thu, 12 Aug 2010 04:10:13 +0100] rev 4381
cosmetic

21 months agoadded support for multiple publisher acks for transient messages bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Wed, 11 Aug 2010 18:00:22 +0100] rev 4380
added support for multiple publisher acks for transient messages

When in confirm multiple mode, transient messages queue up in a
gb_set. Every 5s, these acks are sent out (individually, for now).

21 months agosubsequent confirm.selects cannot change the multiple setting bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Wed, 11 Aug 2010 17:20:49 +0100] rev 4379
subsequent confirm.selects cannot change the multiple setting

21 months agorename pubAck -> confirm bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Wed, 11 Aug 2010 16:06:00 +0100] rev 4378
rename pubAck -> confirm

21 months agomerge bug23104 into default
Matthias Radestock <matthias@rabbitmq.com> [Wed, 11 Aug 2010 16:54:55 +0100] rev 4377
merge bug23104 into default

21 months agoremove redundant code bug23104
Matthias Radestock <matthias@rabbitmq.com> [Wed, 11 Aug 2010 16:52:35 +0100] rev 4376
remove redundant code

21 months agominor neatification bug23104
Matthias Radestock <matthias@rabbitmq.com> [Wed, 11 Aug 2010 16:33:47 +0100] rev 4375
minor neatification

21 months agomerge default into bug23104 bug23104
Matthias Radestock <matthias@rabbitmq.com> [Wed, 11 Aug 2010 16:30:16 +0100] rev 4374
merge default into bug23104

21 months agocosmetic: consistency
Matthias Radestock <matthias@rabbitmq.com> [Wed, 11 Aug 2010 16:28:21 +0100] rev 4373
cosmetic: consistency

21 months agoGet the reader to link to the chan_sup instead of the framing_chan. It used to link to the framing chan, which meant that when it got the exit signal from the framing_chan, it could be sure that the channel and writer had already died. However, this is no longer the case - now the framing_chan is actually the last to start and first to exit in the chan_sup and so the reader needs to link to the chan_sup instead. This means the reader needs to track both the framing_chan and the chan_sup bug15930
Matthew Sackman <matthew@rabbitmq.com> [Wed, 11 Aug 2010 16:16:15 +0100] rev 4372
Get the reader to link to the chan_sup instead of the framing_chan. It used to link to the framing chan, which meant that when it got the exit signal from the framing_chan, it could be sure that the channel and writer had already died. However, this is no longer the case - now the framing_chan is actually the last to start and first to exit in the chan_sup and so the reader needs to link to the chan_sup instead. This means the reader needs to track both the framing_chan and the chan_sup

21 months agomake table content spot check part of schema_integrity_check bug23104
Matthias Radestock <matthias@rabbitmq.com> [Wed, 11 Aug 2010 15:59:38 +0100] rev 4371
make table content spot check part of schema_integrity_check
and
- rename check_table_content to check_table_integrity
- change wait_for_tables to only do what it says rather than also do
the schema integrity check. This change is necessary in order to
avoid an infinite recursion due to check_table_integrity needing to
call wait_for_tables
- add ensure_schema_integrity_check, which contains logic which
previously was part of wait_for_tables
- call wait_for_tables in all the right places, and no more

21 months agocheck that messages are transient before ack'ing blindly bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Wed, 11 Aug 2010 14:01:16 +0100] rev 4370
check that messages are transient before ack'ing blindly

21 months agoadded counter and single pubacks for transient messages bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Wed, 11 Aug 2010 13:54:36 +0100] rev 4369
added counter and single pubacks for transient messages

Publishes are counter starting with the first one after
pubAck.select().

If many is set to false, transient messages are ack'd as soon as the
are received, but after the exchange name is resolved.

21 months agoidiot2 bug23104
Matthew Sackman <matthew@rabbitmq.com> [Wed, 11 Aug 2010 13:57:55 +0100] rev 4368
idiot2

21 months agoidiot bug23104
Matthew Sackman <matthew@rabbitmq.com> [Wed, 11 Aug 2010 13:56:40 +0100] rev 4367
idiot

21 months agoThe table content tests need to happen *after* we've waited for the tables, otherwise they can fail. Thus now two phases - schema checks, as before, and then table content checks. bug23104
Matthew Sackman <matthew@rabbitmq.com> [Wed, 11 Aug 2010 13:46:05 +0100] rev 4366
The table content tests need to happen *after* we've waited for the tables, otherwise they can fail. Thus now two phases - schema checks, as before, and then table content checks.

21 months agocosmetic bug23104
Matthew Sackman <matthew@rabbitmq.com> [Wed, 11 Aug 2010 13:30:30 +0100] rev 4365
cosmetic

21 months agoImprove match specs bug23104
Matthew Sackman <matthew@rabbitmq.com> [Wed, 11 Aug 2010 13:21:10 +0100] rev 4364
Improve match specs

21 months agoUse match specs instead. This is a first pass - I want to be able to add some guards and assert things a little more tightly bug23104
Matthew Sackman <matthew@rabbitmq.com> [Wed, 11 Aug 2010 12:53:31 +0100] rev 4363
Use match specs instead. This is a first pass - I want to be able to add some guards and assert things a little more tightly

21 months agoPartial implementation of 3rd suggestion. Partial because I just wanted to see the shape of it rather than implement the whole thing and then possibly have to revoke it. IMO, testing on the deep structure of terms is likely sufficient bug23104
Matthew Sackman <matthew@rabbitmq.com> [Tue, 10 Aug 2010 18:38:15 +0100] rev 4362
Partial implementation of 3rd suggestion. Partial because I just wanted to see the shape of it rather than implement the whole thing and then possibly have to revoke it. IMO, testing on the deep structure of terms is likely sufficient

21 months agoadded pubAck handlers in rabbit_channel bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 10 Aug 2010 17:56:33 +0100] rev 4361
added pubAck handlers in rabbit_channel

A transactional channel cannot be made pubAck.
A pubAck channel cannot be made transactional.

21 months agoadded puback to framing codecs bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 10 Aug 2010 15:12:35 +0100] rev 4360
added puback to framing codecs

21 months agomerged default into bug23045 bug23045
Alexandru Scvortov <alexandru@rabbitmq.com> [Mon, 09 Aug 2010 12:30:29 +0100] rev 4359
merged default into bug23045

21 months agoRemove dead code - collector is never explicitly shutdown: the supervisor will kill it off appropriately bug15930
Matthew Sackman <matthew@rabbitmq.com> [Tue, 10 Aug 2010 15:27:58 +0100] rev 4358
Remove dead code - collector is never explicitly shutdown: the supervisor will kill it off appropriately

21 months agoI erroneously removed trap_exit on channel yesterday. It needs to be on because otherwise the gen_server won't call terminate when it's sent a shutdown signal bug15930
Matthew Sackman <matthew@rabbitmq.com> [Tue, 10 Aug 2010 15:11:31 +0100] rev 4357
I erroneously removed trap_exit on channel yesterday. It needs to be on because otherwise the gen_server won't call terminate when it's sent a shutdown signal

21 months agoAbstract the heartbeaters in the same way - the reader now has no references to supervisor(2)?:.* nor does heartbeater. bug15930
Matthew Sackman <matthew@rabbitmq.com> [Tue, 10 Aug 2010 15:05:21 +0100] rev 4356
Abstract the heartbeaters in the same way - the reader now has no references to supervisor(2)?:.* nor does heartbeater.

21 months agoAbstract out the limiter creation. The abstraction made ensures the channel never directly calls supervisor(2)?:.*, nor does it have any knowledge of the channel_sup. bug15930
Matthew Sackman <matthew@rabbitmq.com> [Tue, 10 Aug 2010 14:02:41 +0100] rev 4355
Abstract out the limiter creation. The abstraction made ensures the channel never directly calls supervisor(2)?:.*, nor does it have any knowledge of the channel_sup.

21 months agoMerging bug 23095 into bug 15930 bug15930
Matthew Sackman <matthew@rabbitmq.com> [Tue, 10 Aug 2010 12:54:57 +0100] rev 4354
Merging bug 23095 into bug 15930

21 months agoPrevent supervisor2 from getting upset if a child has already vanished normally whilst the supervisor is trying to stop it bug23095
Matthew Sackman <matthew@rabbitmq.com> [Tue, 10 Aug 2010 12:53:40 +0100] rev 4353
Prevent supervisor2 from getting upset if a child has already vanished normally whilst the supervisor is trying to stop it

21 months agoMerging an ancient outstanding head of bug 19662 into junk junk
Matthew Sackman <matthew@rabbitmq.com> [Tue, 10 Aug 2010 12:30:56 +0100] rev 4352
Merging an ancient outstanding head of bug 19662 into junk

21 months agoRemerge bug23038 into default
David Wragg <david@rabbitmq.com> [Tue, 10 Aug 2010 12:20:01 +0100] rev 4351
Remerge bug23038 into default

Plugins directory should always exist

21 months agoMake a plugin directory for the Windows package as well bug23038
Michael Bridgen <mikeb@rabbitmq.com> [Tue, 10 Aug 2010 10:23:26 +0100] rev 4350
Make a plugin directory for the Windows package as well

21 months agomerge bug23098 into default
Matthias Radestock <matthias@rabbitmq.com> [Mon, 09 Aug 2010 19:15:38 +0100] rev 4349
merge bug23098 into default

21 months agoWhen a supervisor is killing off its children, if its children have already exited normally, don't class it as an error - after all, the supervisor traps_exits, so the relevant exit signals will likely already be in the supervisor's mailbox bug15930
Matthew Sackman <matthew@rabbitmq.com> [Mon, 09 Aug 2010 18:59:24 +0100] rev 4348
When a supervisor is killing off its children, if its children have already exited normally, don't class it as an error - after all, the supervisor traps_exits, so the relevant exit signals will likely already be in the supervisor's mailbox

21 months agoFixes all over. Still more to do, though mainly API fixes. Functionality seems to be correct. bug15930
Matthew Sackman <matthew@rabbitmq.com> [Mon, 09 Aug 2010 18:45:37 +0100] rev 4347
Fixes all over. Still more to do, though mainly API fixes. Functionality seems to be correct.

21 months agoGiven changes to intrinsic, if we do ever try to restart (abnormal exit), we should hit the max restart intensity immediately bug15930
Matthew Sackman <matthew@rabbitmq.com> [Mon, 09 Aug 2010 17:14:10 +0100] rev 4346
Given changes to intrinsic, if we do ever try to restart (abnormal exit), we should hit the max restart intensity immediately

21 months agoArbitrarily decide to make the channel_sup_sup the very first thing that gets started and thus the last that gets stopped bug15930
Matthew Sackman <matthew@rabbitmq.com> [Mon, 09 Aug 2010 17:10:19 +0100] rev 4345
Arbitrarily decide to make the channel_sup_sup the very first thing that gets started and thus the last that gets stopped

21 months agoFlush the writer much earlier on, allowing the actual termination to be less risky bug15930
Matthew Sackman <matthew@rabbitmq.com> [Mon, 09 Aug 2010 17:09:17 +0100] rev 4344
Flush the writer much earlier on, allowing the actual termination to be less risky

21 months agoMerging bug 23098 into bug 15930 bug15930
Matthew Sackman <matthew@rabbitmq.com> [Mon, 09 Aug 2010 17:05:22 +0100] rev 4343
Merging bug 23098 into bug 15930

21 months agoMerging default into bug 15930 bug15930
Matthew Sackman <matthew@rabbitmq.com> [Mon, 09 Aug 2010 17:05:04 +0100] rev 4342
Merging default into bug 15930

21 months agoMerging bug 23095 into bug 15930 bug15930
Matthew Sackman <matthew@rabbitmq.com> [Mon, 09 Aug 2010 17:02:21 +0100] rev 4341
Merging bug 23095 into bug 15930

21 months agoModify behaviour of intrinsic to be more like transient, except in the case of normal child exit bug23095
Matthew Sackman <matthew@rabbitmq.com> [Mon, 09 Aug 2010 16:36:44 +0100] rev 4340
Modify behaviour of intrinsic to be more like transient, except in the case of normal child exit

21 months agoReverting rabbit_sup to not use intrinsic bug23095
Matthew Sackman <matthew@rabbitmq.com> [Mon, 09 Aug 2010 16:35:39 +0100] rev 4339
Reverting rabbit_sup to not use intrinsic

21 months agoMerge bug21875 into default
David Wragg <david@rabbitmq.com> [Mon, 09 Aug 2010 16:02:09 +0100] rev 4338
Merge bug21875 into default

allow erlang and rabbit to be upgraded even when plugins are present

21 months agouse state_del_child instead of remove_child bug23095
Matthias Radestock <matthias@rabbitmq.com> [Mon, 09 Aug 2010 16:01:58 +0100] rev 4337
use state_del_child instead of remove_child
remove_child removes child *specs* which is not what we want here

21 months agoOn reaching the max_restart_intensited, don't remove the child spec. Instead just blank out the child's pid, thus ensuring terminate works correctly even for simple_one_for_one_terminate bug23098
Matthew Sackman <matthew@rabbitmq.com> [Mon, 09 Aug 2010 15:58:33 +0100] rev 4336
On reaching the max_restart_intensited, don't remove the child spec. Instead just blank out the child's pid, thus ensuring terminate works correctly even for simple_one_for_one_terminate

21 months agocosmetic bug23095
Matthias Radestock <matthias@rabbitmq.com> [Mon, 09 Aug 2010 15:34:22 +0100] rev 4335
cosmetic

21 months agomerge heads
Matthias Radestock <matthias@rabbitmq.com> [Mon, 09 Aug 2010 14:30:08 +0100] rev 4334
merge heads

21 months agomerge bug23095 into default
Matthias Radestock <matthias@rabbitmq.com> [Mon, 09 Aug 2010 14:28:00 +0100] rev 4333
merge bug23095 into default

21 months agomerging bug23039 into default
Vlad Alexandru Ionescu <vlad@rabbitmq.com> [Mon, 09 Aug 2010 14:11:57 +0100] rev 4332
merging bug23039 into default

21 months agoMerging bug 23095 into bug 15930 bug15930
Matthew Sackman <matthew@rabbitmq.com> [Mon, 09 Aug 2010 13:39:42 +0100] rev 4331
Merging bug 23095 into bug 15930

21 months agoConvert rabbit_sup to supervisor2 using intrinsic bug23095
Matthew Sackman <matthew@rabbitmq.com> [Mon, 09 Aug 2010 13:38:27 +0100] rev 4330
Convert rabbit_sup to supervisor2 using intrinsic

21 months agoIntroduce intrinsic restart type bug23095
Matthew Sackman <matthew@rabbitmq.com> [Mon, 09 Aug 2010 12:32:27 +0100] rev 4329
Introduce intrinsic restart type

21 months agoMerging default into bug 15930 bug15930
Matthew Sackman <matthew@rabbitmq.com> [Mon, 09 Aug 2010 12:22:19 +0100] rev 4328
Merging default into bug 15930

21 months agoExport gen_server2:enter_loop6 (oversight from the past)
Matthew Sackman <matthew@rabbitmq.com> [Mon, 09 Aug 2010 12:20:53 +0100] rev 4327
Export gen_server2:enter_loop6 (oversight from the past)

21 months agoMerging bug 23094 into bug 15930 bug15930
Matthew Sackman <matthew@rabbitmq.com> [Mon, 09 Aug 2010 12:11:09 +0100] rev 4326
Merging bug 23094 into bug 15930

21 months agocosmetic bug23094
Matthew Sackman <matthew@rabbitmq.com> [Mon, 09 Aug 2010 12:10:38 +0100] rev 4325
cosmetic

21 months agocosmetic bug23094
Matthew Sackman <matthew@rabbitmq.com> [Mon, 09 Aug 2010 12:08:44 +0100] rev 4324
cosmetic

21 months agoMove parent inside of #v1 in reader bug23094
Matthew Sackman <matthew@rabbitmq.com> [Mon, 09 Aug 2010 11:40:33 +0100] rev 4323
Move parent inside of #v1 in reader

21 months agoMerging default into bug 15930 bug15930
Matthew Sackman <matthew@rabbitmq.com> [Mon, 09 Aug 2010 11:31:01 +0100] rev 4322
Merging default into bug 15930

21 months agoMerge bug23091 (use protocol in #content rather than supplying it)
Michael Bridgen <mikeb@rabbitmq.com> [Sun, 08 Aug 2010 17:50:22 +0100] rev 4321
Merge bug23091 (use protocol in #content rather than supplying it)

21 months agoexpand and rewrite tests bug23091
Matthias Radestock <matthias@rabbitmq.com> [Sun, 08 Aug 2010 14:24:20 +0100] rev 4320
expand and rewrite tests
make it more obvious what we are testing and handle more cases

21 months agoimprove test coverage bug23091
Matthias Radestock <matthias@rabbitmq.com> [Sat, 07 Aug 2010 23:44:54 +0100] rev 4319
improve test coverage

21 months agohandle transcoding of content when it is not available decoded bug23091
Matthias Radestock <matthias@rabbitmq.com> [Sat, 07 Aug 2010 23:33:48 +0100] rev 4318
handle transcoding of content when it is not available decoded

21 months agocosmetic bug23091
Matthias Radestock <matthias@rabbitmq.com> [Sat, 07 Aug 2010 22:29:06 +0100] rev 4317
cosmetic
- we only use quoted atoms in types and when quoting is needed
- make existence check total - if it's the wrong type code further
down the chain will barf anyway

21 months agono protocol in rabbit_binary_parser:ensure_content_decoded bug23091
Matthias Radestock <matthias@rabbitmq.com> [Sat, 07 Aug 2010 21:13:16 +0100] rev 4316
no protocol in rabbit_binary_parser:ensure_content_decoded
it can just use the protocol associated with the #content, which is
safer and presents a saner API

21 months agoinclude method name in error if possible bug23039
Matthias Radestock <matthias@rabbitmq.com> [Fri, 06 Aug 2010 19:01:08 +0100] rev 4315
include method name in error if possible

21 months agooops bug23039
Matthias Radestock <matthias@rabbitmq.com> [Fri, 06 Aug 2010 18:25:45 +0100] rev 4314
oops

21 months agoFix stupid error, more consistency. bug21875
Simon MacMullen <simon@rabbitmq.com> [Fri, 06 Aug 2010 18:00:16 +0100] rev 4313
Fix stupid error, more consistency.

21 months agoAdded intrinsic restart type and used it bug15930
Matthew Sackman <matthew@rabbitmq.com> [Fri, 06 Aug 2010 17:55:16 +0100] rev 4312
Added intrinsic restart type and used it

21 months agoRemoving the wrong changes to supervisor2 to suppress error reporting. Shall fix this one differently. bug15930
Matthew Sackman <matthew@rabbitmq.com> [Fri, 06 Aug 2010 17:27:06 +0100] rev 4311
Removing the wrong changes to supervisor2 to suppress error reporting. Shall fix this one differently.

21 months agoMerging default into bug 15930 bug15930
Matthew Sackman <matthew@rabbitmq.com> [Fri, 06 Aug 2010 17:24:16 +0100] rev 4310
Merging default into bug 15930

21 months agoMerge bug23035, list activated plugins
Michael Bridgen <mikeb@rabbitmq.com> [Fri, 06 Aug 2010 17:22:03 +0100] rev 4309
Merge bug23035, list activated plugins

21 months agoexit the framing_channel normally on unexected_frame error bug23039
Matthias Radestock <matthias@rabbitmq.com> [Fri, 06 Aug 2010 17:15:21 +0100] rev 4308
exit the framing_channel normally on unexected_frame error
and use explicit signalling to the reader instead of exiting
abnormally. This avoids cluttering the error log.

21 months agoUnpack plugins into appdata on Windows. bug21875
Simon MacMullen <simon@rabbitmq.com> [Fri, 06 Aug 2010 17:06:06 +0100] rev 4307
Unpack plugins into appdata on Windows.

21 months agoDefault to the real Unix-y scratch dir, override in the Makefile. bug21875
Simon MacMullen <simon@rabbitmq.com> [Fri, 06 Aug 2010 17:03:10 +0100] rev 4306
Default to the real Unix-y scratch dir, override in the Makefile.

21 months agoMerge heads
Michael Bridgen <mikeb@rabbitmq.com> [Fri, 06 Aug 2010 13:07:27 +0100] rev 4305
Merge heads

21 months agoMerge bug23038, plugins dir in binary dists
Michael Bridgen <mikeb@rabbitmq.com> [Fri, 06 Aug 2010 13:06:41 +0100] rev 4304
Merge bug23038, plugins dir in binary dists