23 hours agomerge bug23107 into default default tip
Alexandru Scvortov <alexandru@rabbitmq.com> [Wed, 01 Sep 2010 17:21:35 +0100] rev 4657
merge bug23107 into default

25 hours agobug23185 merged into default
Marek Majkowski <marek@rabbitmq.com> [Wed, 01 Sep 2010 15:19:36 +0100] rev 4656
bug23185 merged into default

26 hours agoMerge bug23197 (missed heartbeat may not get logged)
Simon MacMullen <simon@rabbitmq.com> [Wed, 01 Sep 2010 14:58:08 +0100] rev 4655
Merge bug23197 (missed heartbeat may not get logged)

26 hours agocosmetic
Matthias Radestock <matthias@rabbitmq.com> [Wed, 01 Sep 2010 14:40:13 +0100] rev 4654
cosmetic

26 hours agosimplifying refactor
Matthias Radestock <matthias@rabbitmq.com> [Wed, 01 Sep 2010 14:39:32 +0100] rev 4653
simplifying refactor

26 hours agomerge bug23215 into default
Matthias Radestock <matthias@rabbitmq.com> [Wed, 01 Sep 2010 14:29:00 +0100] rev 4652
merge bug23215 into default

29 hours agofixing premature generalisation bug23215
Vlad Alexandru Ionescu <vlad@rabbitmq.com> [Wed, 01 Sep 2010 12:07:08 +0100] rev 4651
fixing premature generalisation

29 hours agomaking gen:call label constant; separating calls handling bug23215
Vlad Alexandru Ionescu <vlad@rabbitmq.com> [Wed, 01 Sep 2010 11:43:53 +0100] rev 4650
making gen:call label constant; separating calls handling

30 hours agofixing unreachable function clause bug23215
Vlad Alexandru Ionescu <vlad@rabbitmq.com> [Wed, 01 Sep 2010 10:46:27 +0100] rev 4649
fixing unreachable function clause

47 hours agoMerged bug23181 into default
Emile Joubert <emile@rabbitmq.com> [Tue, 31 Aug 2010 17:53:04 +0100] rev 4648
Merged bug23181 into default

47 hours agorefactored code bug23157
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 31 Aug 2010 17:42:24 +0100] rev 4647
refactored code

2 days agoshortened code a bit bug23157
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 31 Aug 2010 17:14:05 +0100] rev 4646
shortened code a bit

2 days agoin/3 -> in/2; drain/2 -> drain/1 bug23157
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 31 Aug 2010 16:44:45 +0100] rev 4645
in/3 -> in/2; drain/2 -> drain/1

2 days agoclient scope grants permission *only* for amq.gen resources bug23185
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 31 Aug 2010 13:58:24 +0100] rev 4644
client scope grants permission *only* for amq.gen resources

So, a client still need explicit permission to use amq.default, etc.

2 days agolists:member. bug23200
Simon MacMullen <simon@rabbitmq.com> [Tue, 31 Aug 2010 13:56:50 +0100] rev 4643
lists:member.

2 days agoAllow byte, int, short, long. bug23200
Simon MacMullen <simon@rabbitmq.com> [Tue, 31 Aug 2010 13:47:46 +0100] rev 4642
Allow byte, int, short, long.

2 days agomerge bug23184 into default
Matthias Radestock <matthias@rabbitmq.com> [Tue, 31 Aug 2010 13:10:51 +0100] rev 4641
merge bug23184 into default

2 days agoChange type of expires argument from (signed)long to signedint since that's the best we can do in 0-8. bug23200
Simon MacMullen <simon@rabbitmq.com> [Tue, 31 Aug 2010 12:10:08 +0100] rev 4640
Change type of expires argument from (signed)long to signedint since that's the best we can do in 0-8.

2 days agopending acks are sent out when the channel becomes idle or every 1s bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 31 Aug 2010 11:56:22 +0100] rev 4639
pending acks are sent out when the channel becomes idle or every 1s

2 days agofixed message leak caused by confirms bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 31 Aug 2010 10:35:46 +0100] rev 4638
fixed message leak caused by confirms

I've added variable_queue:init/4. It calls variable_queue:init/3 and
the fourth parameter is a tuple of 3 functions: the function to call
when the indices of some guids hit the disk, the function to call when
some guids hit the disk and the function to call when some guids have
been ack'd by the consumer. Rabbit_test supplies nops rather than the
usual casts, so the superfluous messages aren't generated.

5 days agobetter recursive delete bug23184
Matthias Radestock <matthias@rabbitmq.com> [Fri, 27 Aug 2010 19:11:47 +0100] rev 4637
better recursive delete

5 days agomerge default into bug20284 bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Fri, 27 Aug 2010 18:19:56 +0100] rev 4636
merge default into bug20284

The tests fail right now because queue_index sends out more messages
than expected.

6 days agoMerged bug23183 into junk junk
Emile Joubert <emile@rabbitmq.com> [Fri, 27 Aug 2010 15:38:34 +0100] rev 4635
Merged bug23183 into junk

6 days agoremove the mnesia dir check from rabbit:prepare() bug23184
Simon MacMullen <simon@rabbitmq.com> [Fri, 27 Aug 2010 15:19:56 +0100] rev 4634
remove the mnesia dir check from rabbit:prepare()

6 days agoCall rabbit:prepare just before starting rabbit. bug23184
Simon MacMullen <simon@rabbitmq.com> [Fri, 27 Aug 2010 15:16:47 +0100] rev 4633
Call rabbit:prepare just before starting rabbit.

6 days agoRework delete_dir to return error tuple. bug23184
Simon MacMullen <simon@rabbitmq.com> [Fri, 27 Aug 2010 15:16:10 +0100] rev 4632
Rework delete_dir to return error tuple.

6 days agoMerge bug23109 (remove reader profiling dwead code)
Michael Bridgen <mikeb@rabbitmq.com> [Fri, 27 Aug 2010 15:04:50 +0100] rev 4631
Merge bug23109 (remove reader profiling dwead code)

6 days agoIncrease robustness when the scratch dir cannot be deleted / written. bug23184
Simon MacMullen <simon@rabbitmq.com> [Fri, 27 Aug 2010 14:33:39 +0100] rev 4630
Increase robustness when the scratch dir cannot be deleted / written.

6 days agoprevent normal heartbeater termination from tearing down the reader bug23197
Matthias Radestock <matthias@rabbitmq.com> [Fri, 27 Aug 2010 14:16:17 +0100] rev 4629
prevent normal heartbeater termination from tearing down the reader

6 days agoAll packaging makefiles can assume that "make srcdist" is already done bug23116
David Wragg <david@rabbitmq.com> [Fri, 27 Aug 2010 14:13:50 +0100] rev 4628
All packaging makefiles can assume that "make srcdist" is already done

6 days agoMerge bug23192 into default (errors in gen_server2 'terminate' callback mask termination reason)
Simon MacMullen <simon@rabbitmq.com> [Fri, 27 Aug 2010 13:42:08 +0100] rev 4627
Merge bug23192 into default (errors in gen_server2 'terminate' callback mask termination reason)

6 days agomerge bug15930 into default
Matthias Radestock <matthias@rabbitmq.com> [Fri, 27 Aug 2010 12:19:58 +0100] rev 4626
merge bug15930 into default

6 days agoMerge bug23106 (remove rabbit_hooks)
Michael Bridgen <mikeb@rabbitmq.com> [Fri, 27 Aug 2010 12:07:49 +0100] rev 4625
Merge bug23106 (remove rabbit_hooks)

6 days agotweak bug23192
Matthias Radestock <matthias@rabbitmq.com> [Thu, 26 Aug 2010 21:51:56 +0100] rev 4624
tweak

6 days agoreport the root cause when 'terminate' callback fails bug23192
Matthias Radestock <matthias@rabbitmq.com> [Thu, 26 Aug 2010 21:31:49 +0100] rev 4623
report the root cause when 'terminate' callback fails

6 days agominor cosmetic bug21440
Vlad Alexandru Ionescu <vlad@rabbitmq.com> [Thu, 26 Aug 2010 19:12:36 +0100] rev 4622
minor cosmetic

6 days agoimplementing topic routing with tries; adding better test for topic routing bug21440
Vlad Alexandru Ionescu <vlad@rabbitmq.com> [Thu, 26 Aug 2010 18:46:36 +0100] rev 4621
implementing topic routing with tries; adding better test for topic routing

6 days agoMerged bug23178 into default
Emile Joubert <emile@rabbitmq.com> [Thu, 26 Aug 2010 17:28:49 +0100] rev 4620
Merged bug23178 into default

7 days agomove treating 'amq\.*' specially to inner case bug23185
Alexandru Scvortov <alexandru@rabbitmq.com> [Thu, 26 Aug 2010 13:36:58 +0100] rev 4619
move treating 'amq\.*' specially to inner case

The Permission argument to check_resource_access is not
a #permission{}. It is an atom naming which permission we want
(configure, read or write).

To treat 'amq.*' resources differently, the check needs to be moved to
the inner case.

7 days agoMerge bug23141 into default
David Wragg <david@rabbitmq.com> [Thu, 26 Aug 2010 11:40:37 +0100] rev 4618
Merge bug23141 into default

rabbitmq-multi should detect a bad NODENAME

7 days agoremoved underspecs warnings bug23047
Alexandru Scvortov <alexandru@rabbitmq.com> [Wed, 25 Aug 2010 21:15:41 +0100] rev 4617
removed underspecs warnings

7 days agosolve a warning bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Wed, 25 Aug 2010 21:11:28 +0100] rev 4616
solve a warning

7 days agodelete_now -> delete bug23143
Alexandru Scvortov <alexandru@rabbitmq.com> [Wed, 25 Aug 2010 18:57:55 +0100] rev 4615
delete_now -> delete

7 days agoSet default paths for cygwin bug23183
Emile Joubert <emile@rabbitmq.com> [Wed, 25 Aug 2010 18:14:19 +0100] rev 4614
Set default paths for cygwin

7 days agoConvert use of proplists:lookup to proplists:get_value
Matthew Sackman <matthew@rabbitmq.com> [Wed, 25 Aug 2010 17:21:52 +0100] rev 4613
Convert use of proplists:lookup to proplists:get_value

8 days agoMerging default into bug 15930 and minor debitrot (heartbeater) bug15930
Matthew Sackman <matthew@rabbitmq.com> [Wed, 25 Aug 2010 17:13:38 +0100] rev 4612
Merging default into bug 15930 and minor debitrot (heartbeater)

8 days agooops
Matthias Radestock <matthias@rabbitmq.com> [Wed, 25 Aug 2010 17:03:31 +0100] rev 4611
oops

8 days agomerge bug19230 into junk junk
Matthias Radestock <matthias@rabbitmq.com> [Wed, 25 Aug 2010 16:26:31 +0100] rev 4610
merge bug19230 into junk

8 days agoget rid of hook mechanism bug23106
Matthias Radestock <matthias@rabbitmq.com> [Wed, 25 Aug 2010 16:06:17 +0100] rev 4609
get rid of hook mechanism
It's only ever been used in the bug19230 branch, which is defunct.

8 days agoremove dead code bug23109
Matthias Radestock <matthias@rabbitmq.com> [Wed, 25 Aug 2010 15:46:11 +0100] rev 4608
remove dead code
nobody ever uses the reader profiling, and the underlying config
mechanism hasn't been used by anything else.

8 days agoMerge bug 23131 into default (display plugin version during activation)
Simon MacMullen <simon@rabbitmq.com> [Wed, 25 Aug 2010 15:36:27 +0100] rev 4607
Merge bug 23131 into default (display plugin version during activation)

8 days agodisplay app version during plugin activation bug23131
Matthias Radestock <matthias@rabbitmq.com> [Wed, 25 Aug 2010 14:55:09 +0100] rev 4606
display app version during plugin activation

8 days agoEnsure that non-deletion queue-termination does a call via the msg_store to ensure all messages from the queue have made it to the msg_store's mailbox (and have actually also been acted on) bug23181
Matthew Sackman <matthew@rabbitmq.com> [Wed, 25 Aug 2010 12:54:00 +0100] rev 4605
Ensure that non-deletion queue-termination does a call via the msg_store to ensure all messages from the queue have made it to the msg_store's mailbox (and have actually also been acted on)

8 days agoMerging in default now that default has only one head bug23178
Matthew Sackman <matthew@rabbitmq.com> [Wed, 25 Aug 2010 11:52:24 +0100] rev 4604
Merging in default now that default has only one head

8 days agoMerge heads of default
Matthew Sackman <matthew@rabbitmq.com> [Wed, 25 Aug 2010 11:51:24 +0100] rev 4603
Merge heads of default

8 days agoexclusive queues are deleted quickly on unclean connection termination bug23143
Alexandru Scvortov <alexandru@rabbitmq.com> [Wed, 25 Aug 2010 11:38:07 +0100] rev 4602
exclusive queues are deleted quickly on unclean connection termination

8 days agoexclusive queues are deleted quickly on clean connection termination bug23143
Alexandru Scvortov <alexandru@rabbitmq.com> [Wed, 25 Aug 2010 11:32:23 +0100] rev 4601
exclusive queues are deleted quickly on clean connection termination

8 days agoConvert client_delete_and_terminate from a call to a cast bug23178
Matthew Sackman <matthew@rabbitmq.com> [Wed, 25 Aug 2010 11:32:43 +0100] rev 4600
Convert client_delete_and_terminate from a call to a cast

8 days agoupdated docs bug23157
Alexandru Scvortov <alexandru@rabbitmq.com> [Wed, 25 Aug 2010 10:17:20 +0100] rev 4599
updated docs

8 days agoremoved all references to pcall and pcast bug23157
Alexandru Scvortov <alexandru@rabbitmq.com> [Wed, 25 Aug 2010 10:12:04 +0100] rev 4598
removed all references to pcall and pcast

8 days agopreemptively detect common cause of failed startup bug23141
Matthias Radestock <matthias@rabbitmq.com> [Wed, 25 Aug 2010 05:51:02 +0100] rev 4597
preemptively detect common cause of failed startup
namely when the node does actually start (if it doesn't then the
launcher process terminates, which we detect already) but we cannot
connect to it due to dns/network/epmd issues

8 days agotypo bug23157
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 24 Aug 2010 17:46:54 +0100] rev 4596
typo

8 days agorefactoring bug23157
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 24 Aug 2010 17:19:53 +0100] rev 4595
refactoring

9 days agomigrated rabbit_limiter to prioritizers bug23157
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 24 Aug 2010 16:03:40 +0100] rev 4594
migrated rabbit_limiter to prioritizers

9 days agorefactoring bug23157
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 24 Aug 2010 15:59:05 +0100] rev 4593
refactoring

9 days agomigrated amqqueue to prioritisers bug23157
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 24 Aug 2010 15:52:01 +0100] rev 4592
migrated amqqueue to prioritisers

9 days agomigrated msg_store to prioritisers bug23157
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 24 Aug 2010 15:27:05 +0100] rev 4591
migrated msg_store to prioritisers

9 days agomerge default into bug23157 bug23157
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 24 Aug 2010 15:01:48 +0100] rev 4590
merge default into bug23157

9 days agorabbit_channel migrated to prioritisers bug23157
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 24 Aug 2010 15:01:26 +0100] rev 4589
rabbit_channel migrated to prioritisers

9 days agoadded error handling wrappers for prioritisers bug23157
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 24 Aug 2010 14:43:14 +0100] rev 4588
added error handling wrappers for prioritisers

9 days agoprioritize -> prioritise bug23157
Alexandru Scvortov <alexandru@rabbitmq.com> [Tue, 24 Aug 2010 14:24:01 +0100] rev 4587
prioritize -> prioritise

9 days agoDon't nest lists bug23107
Emile Joubert <emile@rabbitmq.com> [Tue, 24 Aug 2010 16:44:51 +0100] rev 4586
Don't nest lists

9 days agoSupply ssl verify function conditionally bug23107
Emile Joubert <emile@rabbitmq.com> [Tue, 24 Aug 2010 16:29:18 +0100] rev 4585
Supply ssl verify function conditionally

9 days agoAdded tag rabbitmq_v2_0_0 for changeset 4f72e4d66f23
Michael Bridgen <mikeb@rabbitmq.com> [Tue, 24 Aug 2010 16:12:08 +0100] rev 4584
Added tag rabbitmq_v2_0_0 for changeset 4f72e4d66f23

9 days agoChangelog updates rabbitmq_v2_0_0
Michael Bridgen <mikeb@rabbitmq.com> [Tue, 24 Aug 2010 14:48:48 +0100] rev 4583
Changelog updates

9 days agoTake peer verification config into account in verify function bug23107
Emile Joubert <emile@rabbitmq.com> [Tue, 24 Aug 2010 14:56:27 +0100] rev 4582
Take peer verification config into account in verify function

This works around a limitation in the ssl module, which does not honour verify_none

10 days agoAccept multiple SSL verification errors bug23107
Emile Joubert <emile@rabbitmq.com> [Mon, 23 Aug 2010 16:47:38 +0100] rev 4581
Accept multiple SSL verification errors

10 days agomerge bug23167 into default (Large msg_store mailbox can block queue.declare)
Alexandru Scvortov <alexandru@rabbitmq.com> [Mon, 23 Aug 2010 15:24:30 +0100] rev 4580
merge bug23167 into default (Large msg_store mailbox can block queue.declare)

10 days agounprioritized calls, casts and infos are passed through the prioritize functions bug23157
Alexandru Scvortov <alexandru@rabbitmq.com> [Mon, 23 Aug 2010 15:10:02 +0100] rev 4579
unprioritized calls, casts and infos are passed through the prioritize functions

PCalls and PCasts have the priorities assigned to them by the pcall, pcast call.

Everything else gets its priority set by prioritize_call/3,
prioritize_cast/2 or prioritize_info/2.

10 days agogen_server2: functions now use a record instead of 9 arguments bug23157
Alexandru Scvortov <alexandru@rabbitmq.com> [Mon, 23 Aug 2010 15:06:26 +0100] rev 4578
gen_server2: functions now use a record instead of 9 arguments

10 days agoDon't ignore SSL certificate verification errors bug23107
Emile Joubert <emile@rabbitmq.com> [Mon, 23 Aug 2010 14:35:05 +0100] rev 4577
Don't ignore SSL certificate verification errors

10 days agoMerge bug23155
Michael Bridgen <mikeb@rabbitmq.com> [Mon, 23 Aug 2010 12:23:49 +0100] rev 4576
Merge bug23155

10 days agoAdd priorities to two calls to ensure queue declaration remains quick even with a large msg_store workload bug23167
Matthew Sackman <matthew@rabbitmq.com> [Sun, 22 Aug 2010 22:16:38 +0100] rev 4575
Add priorities to two calls to ensure queue declaration remains quick even with a large msg_store workload

10 days agomake 'xmlto' invocation work with stricter getopt implementations bug23155
Matthias Radestock <matthias@rabbitmq.com> [Sun, 22 Aug 2010 21:58:05 +0100] rev 4574
make 'xmlto' invocation work with stricter getopt implementations

10 days agomerge bug23153 into default
Matthias Radestock <matthias@rabbitmq.com> [Sun, 22 Aug 2010 20:56:10 +0100] rev 4573
merge bug23153 into default

10 days agoAvoid crash bug23153
Matthew Sackman <matthew@rabbitmq.com> [Sun, 22 Aug 2010 20:21:01 +0100] rev 4572
Avoid crash

10 days agoensure and assert that closed handles have last_used_at=undefined bug23153
Matthias Radestock <matthias@rabbitmq.com> [Sun, 22 Aug 2010 19:53:11 +0100] rev 4571
ensure and assert that closed handles have last_used_at=undefined
That way it is more obvious which handles should be in the age tree
and which shouldn't.

10 days agocosmetic bug23153
Matthias Radestock <matthias@rabbitmq.com> [Sun, 22 Aug 2010 19:51:27 +0100] rev 4570
cosmetic

10 days agomake it more obvious that reopen is a with_age_tree in disguise bug23153
Matthias Radestock <matthias@rabbitmq.com> [Sun, 22 Aug 2010 19:38:40 +0100] rev 4569
make it more obvious that reopen is a with_age_tree in disguise
plus some minor cosmetic shuffling

10 days agodon't traverse age tree unnnecessarily on error in reopen bug23153
Matthias Radestock <matthias@rabbitmq.com> [Sun, 22 Aug 2010 19:30:46 +0100] rev 4568
don't traverse age tree unnnecessarily on error in reopen
this also makes it clearer what's going on

10 days agocosmetic bug23153
Matthew Sackman <matthew@rabbitmq.com> [Sun, 22 Aug 2010 19:06:16 +0100] rev 4567
cosmetic

10 days agorefactor: move open1 into reopen bug23153
Matthias Radestock <matthias@rabbitmq.com> [Sun, 22 Aug 2010 19:01:54 +0100] rev 4566
refactor: move open1 into reopen

10 days agoIf we've obtained permission to open some fds and that turns out not to work out, then we should ensure that we inform the server as soon as we stop that the rest remain closed bug23153
Matthew Sackman <matthew@rabbitmq.com> [Sun, 22 Aug 2010 18:19:14 +0100] rev 4565
If we've obtained permission to open some fds and that turns out not to work out, then we should ensure that we inform the server as soon as we stop that the rest remain closed

11 days agorecord for pending items bug23153
Matthias Radestock <matthias@rabbitmq.com> [Sun, 22 Aug 2010 17:16:03 +0100] rev 4564
record for pending items

11 days agoModify test so that the -1 => -2 change to OBTAIN_LIMIT does not result in the test having sufficient fds available such that the copy could be satisfied without closing bug23153
Matthew Sackman <matthew@rabbitmq.com> [Sun, 22 Aug 2010 17:07:14 +0100] rev 4563
Modify test so that the -1 => -2 change to OBTAIN_LIMIT does not result in the test having sufficient fds available such that the copy could be satisfied without closing

11 days agoUse foldr instead of foldl to avoid having to do extra reverses bug23153
Matthew Sackman <matthew@rabbitmq.com> [Sun, 22 Aug 2010 16:56:54 +0100] rev 4562
Use foldr instead of foldl to avoid having to do extra reverses

11 days agoalways return refs/handles in correct order bug23153
Matthias Radestock <matthias@rabbitmq.com> [Sun, 22 Aug 2010 16:33:33 +0100] rev 4561
always return refs/handles in correct order
to improve clarity at the expense of a few list:reverses.

11 days agocosmetic bug23153
Matthias Radestock <matthias@rabbitmq.com> [Sun, 22 Aug 2010 15:26:55 +0100] rev 4560
cosmetic

11 days agoalways leave at least two fds unobtainable bug23153
Matthias Radestock <matthias@rabbitmq.com> [Sun, 22 Aug 2010 15:26:36 +0100] rev 4559
always leave at least two fds unobtainable
so that 'copy' can succeed
Also, zero-clamp obtain limit

11 days agoMerging heads of default
Matthew Sackman <matthew@rabbitmq.com> [Sun, 22 Aug 2010 14:33:21 +0100] rev 4558
Merging heads of default

11 days agoMerging bug 23166 into default
Matthew Sackman <matthew@rabbitmq.com> [Sun, 22 Aug 2010 14:30:01 +0100] rev 4557
Merging bug 23166 into default

11 days agorefactor: make new_closed_handle create the Ref and return it bug23153
Matthias Radestock <matthias@rabbitmq.com> [Sun, 22 Aug 2010 13:50:13 +0100] rev 4556
refactor: make new_closed_handle create the Ref and return it

11 days agoadd test bug23153
Matthias Radestock <matthias@rabbitmq.com> [Sun, 22 Aug 2010 13:43:42 +0100] rev 4555
add test
this fails on default (or, rather, bug23166, until that is merged)

11 days agomerge bug23166 into bug23153 bug23153
Matthias Radestock <matthias@rabbitmq.com> [Sun, 22 Aug 2010 13:37:38 +0100] rev 4554
merge bug23166 into bug23153

11 days agoadd support for dynamic setting/getting of fhc limit bug23166
Matthias Radestock <matthias@rabbitmq.com> [Sun, 22 Aug 2010 12:44:18 +0100] rev 4553
add support for dynamic setting/getting of fhc limit
and use that in tests

11 days agoRejigged client side so that it asks for the correct number of fds upfront. bug23153
Matthew Sackman <matthew@rabbitmq.com> [Sun, 22 Aug 2010 04:06:18 +0100] rev 4552
Rejigged client side so that it asks for the correct number of fds upfront.

11 days agoModify server logic to deal with requests for multiple fds. Including nice pending_queues abstraction. Client logic remains to be done. bug23153
Matthew Sackman <matthew@rabbitmq.com> [Sat, 21 Aug 2010 20:01:04 +0100] rev 4551
Modify server logic to deal with requests for multiple fds. Including nice pending_queues abstraction. Client logic remains to be done.

12 days agoAdd infrastructure to server to be able to handle requests for multiple fds bug23153
Matthew Sackman <matthew@rabbitmq.com> [Fri, 20 Aug 2010 18:53:39 +0100] rev 4550
Add infrastructure to server to be able to handle requests for multiple fds

12 days agomerge bug23152 into default
Matthias Radestock <matthias@rabbitmq.com> [Fri, 20 Aug 2010 18:47:22 +0100] rev 4549
merge bug23152 into default

13 days agomerge bug23139 into default
Matthias Radestock <matthias@rabbitmq.com> [Fri, 20 Aug 2010 16:58:16 +0100] rev 4548
merge bug23139 into default

13 days agooops bug23139
Matthias Radestock <matthias@rabbitmq.com> [Fri, 20 Aug 2010 16:17:23 +0100] rev 4547
oops

13 days agomerge heads bug23139
Matthias Radestock <matthias@rabbitmq.com> [Fri, 20 Aug 2010 16:12:21 +0100] rev 4546
merge heads

13 days agosimplification due to the fact that we always request closing of all bug23139
Matthias Radestock <matthias@rabbitmq.com> [Fri, 20 Aug 2010 16:09:09 +0100] rev 4545
simplification due to the fact that we always request closing of all

13 days agocosmetic bug23139
Matthias Radestock <matthias@rabbitmq.com> [Fri, 20 Aug 2010 16:08:26 +0100] rev 4544
cosmetic

13 days agoensure_mref => track_client andalso cosmetic bug23139
Matthew Sackman <matthew@rabbitmq.com> [Fri, 20 Aug 2010 15:48:44 +0100] rev 4543
ensure_mref => track_client andalso cosmetic

13 days agoMerging heads bug23139
Matthew Sackman <matthew@rabbitmq.com> [Fri, 20 Aug 2010 15:25:47 +0100] rev 4542
Merging heads

13 days agoConvert fhc to use an ets table with record per client which amalgamates several of the previous state entries bug23139
Matthew Sackman <matthew@rabbitmq.com> [Fri, 20 Aug 2010 15:24:34 +0100] rev 4541
Convert fhc to use an ets table with record per client which amalgamates several of the previous state entries

13 days agocosmetic and some minor refactoring bug23139
Matthias Radestock <matthias@rabbitmq.com> [Fri, 20 Aug 2010 15:05:54 +0100] rev 4540
cosmetic and some minor refactoring

13 days agofix bug that crept in bug23139
Matthias Radestock <matthias@rabbitmq.com> [Fri, 20 Aug 2010 14:57:38 +0100] rev 4539
fix bug that crept in

13 days agoGiven the clients are demanded to close all open fds when asked to, them sending a boolean is irrelvant now bug23139
Matthew Sackman <matthew@rabbitmq.com> [Fri, 20 Aug 2010 14:14:34 +0100] rev 4538
Given the clients are demanded to close all open fds when asked to, them sending a boolean is irrelvant now

13 days agoIf we sent an age of 0 to clients, make sure we do not send more ages of 0 to the same clients until they've actually closed all their handles. This ensures that as more requests come in once we're low on fds, we don't send hundreds of 0 ages to the same clients erroneously. It also means that we always target the correct number of *unique* clients to ask to close their fds, which avoids thrashing the same clients and improves performance markedly. bug23139
Matthew Sackman <matthew@rabbitmq.com> [Fri, 20 Aug 2010 13:02:21 +0100] rev 4537
If we sent an age of 0 to clients, make sure we do not send more ages of 0 to the same clients until they've actually closed all their handles. This ensures that as more requests come in once we're low on fds, we don't send hundreds of 0 ages to the same clients erroneously. It also means that we always target the correct number of *unique* clients to ask to close their fds, which avoids thrashing the same clients and improves performance markedly.

Also, if on open, we send "close" back to the client, that client *is* blocked (actually, due to have 0 opens) as we know it'll close, send us some closed msgs and then re do the open call. Thus we shouldn't be sending it any set maximum age messages.

13 days agostopped a race bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Fri, 20 Aug 2010 10:12:19 +0100] rev 4536
stopped a race

13 days agoGrab the msg from the cur ets file cache, thus avoiding having to send the same message many times bug23152
Matthew Sackman <matthew@rabbitmq.com> [Thu, 19 Aug 2010 18:47:51 +0100] rev 4535
Grab the msg from the cur ets file cache, thus avoiding having to send the same message many times

13 days agorefactor bug23139
Matthias Radestock <matthias@rabbitmq.com> [Thu, 19 Aug 2010 18:45:15 +0100] rev 4534
refactor

2 weeks agocosmetic bug23139
Matthias Radestock <matthias@rabbitmq.com> [Thu, 19 Aug 2010 17:08:22 +0100] rev 4533
cosmetic

13 days agoMerging default into bug 23133 bug23133
Matthew Sackman <matthew@rabbitmq.com> [Thu, 19 Aug 2010 18:13:37 +0100] rev 4532
Merging default into bug 23133

13 days agoMerging old head of bug 23133 to junk junk
Matthew Sackman <matthew@rabbitmq.com> [Thu, 19 Aug 2010 18:13:05 +0100] rev 4531
Merging old head of bug 23133 to junk

2 weeks 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 4530
Abstract refcount == 0 to imply not_found for appropriate call sites

2 weeks 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 4529
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

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

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

2 weeks 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 4526
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

13 days agofixed an ever-expanding dictionary bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Thu, 19 Aug 2010 17:20:09 +0100] rev 4525
fixed an ever-expanding dictionary

The problem with the current design is that the lowest layer that knows
about confirmations is amqqueue_process. This means that
amqqueue_process, variable_queue, msg_store and queue_index need to do
all the bookkeeping associated with confirmations even if they're not
enabled. Mind you, this doesn't slow things down noticeably.

2 weeks agorefactoring + don't do useless work bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Thu, 19 Aug 2010 15:35:39 +0100] rev 4524
refactoring + don't do useless work

2 weeks agodon't do any unnecessary work when publishing in confirm mode bug20284
Alexandru Scvortov <alexandru@rabbitmq.com> [Thu, 19 Aug 2010 14:04:23 +0100] rev 4523
don't do any unnecessary work when publishing in confirm mode

2 weeks agoSome essential assertions bug23139
Matthew Sackman <matthew@rabbitmq.com> [Thu, 19 Aug 2010 16:54:12 +0100] rev 4522
Some essential assertions

2 weeks agoMore meaningful variable name bug23139
Matthew Sackman <matthew@rabbitmq.com> [Thu, 19 Aug 2010 16:43:55 +0100] rev 4521
More meaningful variable name

2 weeks agoWhoops bug23139
Matthew Sackman <matthew@rabbitmq.com> [Thu, 19 Aug 2010 16:36:09 +0100] rev 4520
Whoops

2 weeks agoReworked substantially bug23139
Matthew Sackman <matthew@rabbitmq.com> [Thu, 19 Aug 2010 16:27:08 +0100] rev 4519
Reworked substantially

2 weeks agomerge bug23150 into default
Alexandru Scvortov <alexandru@rabbitmq.com> [Thu, 19 Aug 2010 13:54:58 +0100] rev 4518
merge bug23150 into default

2 weeks agoRemove modifications that I accidentally introduced for testing and forgot to remove prior to ci'ing the merge
Matthew Sackman <matthew@rabbitmq.com> [Thu, 19 Aug 2010 13:44:34 +0100] rev 4517
Remove modifications that I accidentally introduced for testing and forgot to remove prior to ci'ing the merge

2 weeks agoMerging default into bug 23139 (substantial debitrot) bug23139
Matthew Sackman <matthew@rabbitmq.com> [Thu, 19 Aug 2010 13:40:34 +0100] rev 4516
Merging default into bug 23139 (substantial debitrot)

2 weeks agoUse string tokens, not re:split bug23150
Matthew Sackman <matthew@rabbitmq.com> [Thu, 19 Aug 2010 13:16:39 +0100] rev 4515
Use string tokens, not re:split

2 weeks agoMerging bug 23138 into default
Matthew Sackman <matthew@rabbitmq.com> [Thu, 19 Aug 2010 13:07:44 +0100] rev 4514
Merging bug 23138 into default

2 weeks agoonce again allow use of fhc w/o registering bug23138
Matthias Radestock <matthias@rabbitmq.com> [Thu, 19 Aug 2010 12:28:48 +0100] rev 4513
once again allow use of fhc w/o registering

2 weeks agorefactor bug23138
Matthias Radestock <matthias@rabbitmq.com> [Thu, 19 Aug 2010 12:20:18 +0100] rev 4512
refactor

2 weeks agorewrite bug23138
Matthias Radestock <matthias@rabbitmq.com> [Thu, 19 Aug 2010 11:05:02 +0100] rev 4511
rewrite

2 weeks agoadded xref check for undefined, unused and deprecated functions bug23047
Alexandru Scvortov <alexandru@rabbitmq.com> [Thu, 19 Aug 2010 10:58:27 +0100] rev 4510
added xref check for undefined, unused and deprecated functions

2 weeks agoDon't ever keep the recovery process waiting, regardless of whether the queue is going down or not
Matthew Sackman <matthew@rabbitmq.com> [Wed, 18 Aug 2010 17:40:19 +0100] rev 4509
Don't ever keep the recovery process waiting, regardless of whether the queue is going down or not
(transplanted from 4c99ba7eedd4b28a096d0412bbbdacb1fa91daa3)

2 weeks agoA rather crucial infinity missing
Matthew Sackman <matthew@rabbitmq.com> [Wed, 18 Aug 2010 17:29:35 +0100] rev 4508
A rather crucial infinity missing
(transplanted from aaf79aa3cacefee1742eb7f257c6a16ec5720d59)

2 weeks agore-merge rebased bug23145 into new head of default
Matthias Radestock <matthias@rabbitmq.com> [Wed, 18 Aug 2010 23:34:01 +0100] rev 4507
re-merge rebased bug23145 into new head of default

2 weeks agoEliminate RABBITMQ_PLUGINS_EXPAND_DIR bug23145
David Wragg <david@rabbitmq.com> [Wed, 18 Aug 2010 14:52:40 +0100] rev 4506
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.
(transplanted from 064b8797493bb290156fb72a54f9e9276df0faed)

2 weeks agomerge default into junk junk
Matthias Radestock <matthias@rabbitmq.com> [Wed, 18 Aug 2010 23:18:27 +0100] rev 4505
merge default into junk
in order to backout the merge of bug23142, which turns out to have
introduced some not easily fixed breakages.

2 weeks agoremove files from junk junk
Matthias Radestock <matthias@rabbitmq.com> [Wed, 18 Aug 2010 23:17:04 +0100] rev 4504
remove files from junk
to aid subsequent merges

2 weeks 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

2 weeks 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

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

2 weeks 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

2 weeks 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

2 weeks 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

2 weeks agoDon't ever keep the recovery process waiting, regardless of whether the queue is going down or not
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

2 weeks 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

2 weeks 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

2 weeks 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

2 weeks 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

2 weeks 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)

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

2 weeks 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

2 weeks 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.

2 weeks 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

2 weeks 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.

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

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

2 weeks 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

2 weeks 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).

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

2 weeks 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.

2 weeks 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

2 weeks 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

2 weeks 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

2 weeks 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

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

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

2 weeks 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.

2 weeks 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.

2 weeks 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

2 weeks 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{}

2 weeks 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.

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

2 weeks 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

2 weeks 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

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

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

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

2 weeks 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

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

2 weeks 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

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

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

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