summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* merge default into bug25428bug25428Matthias Radestock2013-01-3137-1384/+2240
|\
| * remove out-of-date commentMatthias Radestock2013-01-301-2/+1
| |
| * remove spurious generalityMatthias Radestock2013-01-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | after spending hours trawling through the qi code and its history, Matthew and I are convinced that qi:add_to_journal/3 is unnecessarily general, handling a case that can never arise, namely adding an 'ack' when we do have an entry for the given sequence number but that entry does no contain a 'del'. add_to_journal/3 gets called, indirectly, from four places: 1) load_journal/1. This is always called with no segements in the State. So all the segment journal entries originate from the very add_journal/3 code. And the only way we'd end up with an entry of the form {Pub, no_del, no_ack} and get an 'ack' is if the journal contained a pub and (later) an ack, with no del inbetween. That can only happen through a misuse of the qi API. Which doesn't happen. And there are plenty of other cases (e.g. duplicate dels or acks) where qi insists on callers doing the right thing. 2) publish/5 This ends up adding a {?PUB, no_del, no_ack} entry, so is of no direct concern to our investigation. 3) deliver_or_ack/3 This would hit the aforementioned {Pub, no_del, no_ack} & 'ack' case only if we lost a 'del'. 4) recover_message/5 this only adds an 'ack' to the segment journal if either a) the combination of the segment entries and the segment journal produces an entry {?PUB, del, no_ack}, or b) it's just added a 'del' (thus making a {Pub, no_del, no_ack} entry impossible). Re (a)... for there to be a combined entry of {?PUB, del, no_ack} when the segment journal contains {Pub, no_del, no_ack} (which would trigger the case we are concerned about), the segment would have to contain a 'del' w/o a 'pub', which is impossible.
| * stable to defaultSimon MacMullen2013-01-291-23/+25
| |\
| * | single io:format in order to prevent output interleavingMatthias Radestock2013-01-281-4/+7
| | |
| * | stable to defaultSimon MacMullen2013-01-282-8/+4
| |\ \
| * | | Swap SASL and TLS header codesEmile Joubert2013-01-251-2/+2
| | | |
| * | | Merge bug25415Simon MacMullen2013-01-250-0/+0
| |\ \ \
| * | | | nuke active_consumer_countbug25415Matthias Radestock2013-01-241-11/+3
| |/ / /
| * | | merge stable into defaultMatthias Radestock2013-01-241-2/+4
| |\ \ \
| * \ \ \ Merge headsSimon MacMullen2013-01-242-20/+39
| |\ \ \ \
| | * \ \ \ merge bug25383 into defaultMatthias Radestock2013-01-242-20/+39
| | |\ \ \ \
| | | * | | | improved connection refusal logic / error messagebug25383Matthias Radestock2013-01-242-20/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | plus some tests to go with that And a tweak to the "become 1.0" API
| | | * | | | merge default into bug25383Matthias Radestock2013-01-240-0/+0
| | | |\ \ \ \ | | |/ / / / /
| * | | | | | stable to defaultSimon MacMullen2013-01-24142-145/+145
| |\ \ \ \ \ \ | | |/ / / / / | |/| | | | |
| * | | | | | Quick patch to backing queue quickcheck correcting fold fun arityEmile Joubert2013-01-241-5/+6
| | | | | | |
| * | | | | | stable to defaultSimon MacMullen2013-01-2436-1358/+2200
| |\ \ \ \ \ \
| | * \ \ \ \ \ merge bug24980 into defaultTim Watson2013-01-2317-179/+309
| | |\ \ \ \ \ \
| | | * \ \ \ \ \ merge bug25394 into defaultTim Watson2013-01-225-25/+35
| | | |\ \ \ \ \ \
| | | | * \ \ \ \ \ merge stable into defaultMatthias Radestock2013-01-221-10/+8
| | | | |\ \ \ \ \ \
| | | | * \ \ \ \ \ \ merge stable into defaultMatthias Radestock2013-01-2235-1287/+2134
| | | | |\ \ \ \ \ \ \
| | | | | * \ \ \ \ \ \ merge bug25395 into defaultTim Watson2013-01-218-25/+54
| | | | | |\ \ \ \ \ \ \
| | | | | | * \ \ \ \ \ \ stable to defaultSimon MacMullen2013-01-2135-1287/+2101
| | | | | | |\ \ \ \ \ \ \
| | | | | | | * \ \ \ \ \ \ merge bug25397 into defaultTim Watson2013-01-216-17/+35
| | | | | | | |\ \ \ \ \ \ \
| | | | | | | | * \ \ \ \ \ \ merge bug25409 into defaultTim Watson2013-01-214-3/+27
| | | | | | | | |\ \ \ \ \ \ \
| | | | | | | | * | | | | | | | USe pg_local rather than an ets table.Simon MacMullen2013-01-211-6/+3
| | | | | | | | | | | | | | | |
| | | | | | | | * | | | | | | | cosmetic: move spec of internal function and make it more preciseMatthias Radestock2013-01-201-8/+5
| | | | | | | | | | | | | | | |
| | | * | | | | | | | | | | | | populate slave's msg_id_ack with sync'ed messages pending ackbug25394Matthias Radestock2013-01-192-24/+30
| | | | | | | | | | | | | | | |
| | | * | | | | | | | | | | | | eager sync of messages pending ackMatthias Radestock2013-01-195-24/+23
| | | | | | | | | | | | | | | |
| | | * | | | | | | | | | | | | merge bug25409 into bug25394Matthias Radestock2013-01-199-85/+131
| | | |\ \ \ \ \ \ \ \ \ \ \ \ \ | | | | |_|_|_|_|_|/ / / / / / / | | | |/| | | | | | | | | | | |
| | | | * | | | | | | | | | | | merge bug25395 into bug25394Matthias Radestock2013-01-190-0/+0
| | | | |\ \ \ \ \ \ \ \ \ \ \ \ | | | | | |_|/ / / / / / / / / / | | | | |/| | | | / / / / / / / | | | | | | |_|_|/ / / / / / / | | | | | |/| | | | | | | | |
| | | | * | | | | | | | | | | merge bug25397 into bug25395bug25395Matthias Radestock2013-01-190-0/+0
| | | | |\ \ \ \ \ \ \ \ \ \ \ | | | | | | |_|_|/ / / / / / / | | | | | |/| | | | | | | | |
| | | | | * | | | | | | | | | merge default into bug25397bug25397Matthias Radestock2013-01-191-64/+57
| | | | | |\ \ \ \ \ \ \ \ \ \ | | | | | | |/ / / / / / / / / | | | | | |/| | | | | | | | |
| | | | | | * | | | | | | | | merge default into bug25397Matthias Radestock2013-01-171-64/+57
| | | | | | |\ \ \ \ \ \ \ \ \
| | | | * | | \ \ \ \ \ \ \ \ \ merge default into bug25395Matthias Radestock2013-01-194-77/+103
| | | | |\ \ \ \ \ \ \ \ \ \ \ \ | | | | | |/ / / / / / / / / / / | | | | |/| | | | | | | | | | |
| | | | | * | | | | | | | | | | pass 'unacked' flag to BQ:fold funMatthias Radestock2013-01-154-18/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | so it can distinguish between 'ready' messages and those pending ack
| | | | | * | | | | | | | | | | merge bug25397 into bug25395Matthias Radestock2013-01-152-15/+45
| | | | | |\ \ \ \ \ \ \ \ \ \ \ | | | | | | |_|/ / / / / / / / / | | | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | which involved tweaking the variable_queue_with_holes result slightly, and ripping out a whole bunch of now-redundant test code.
| | | | | | * | | | | | | | | | merge default into bug25395Matthias Radestock2013-01-151-23/+68
| | | | | | |\ \ \ \ \ \ \ \ \ \
| | | | | | * \ \ \ \ \ \ \ \ \ \ merge default into bug25395Matthias Radestock2013-01-141-56/+80
| | | | | | |\ \ \ \ \ \ \ \ \ \ \
| | | | | | | * | | | | | | | | | | refactorMatthias Radestock2013-01-131-19/+14
| | | | | | | | | | | | | | | | | |
| | | | | | | * | | | | | | | | | | include pending_acks in 'fold'Matthias Radestock2013-01-131-13/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | we implement this as a zipper over three iterators
| | | | | | | * | | | | | | | | | | merge bug25397 into bug25395Matthias Radestock2013-01-131-2/+2
| | | | | | | |\ \ \ \ \ \ \ \ \ \ \
| | | | | | | * \ \ \ \ \ \ \ \ \ \ \ merge bug25397 into bug25395Matthias Radestock2013-01-121-30/+30
| | | | | | | |\ \ \ \ \ \ \ \ \ \ \ \
| | | | | | | * \ \ \ \ \ \ \ \ \ \ \ \ merge default into bug25395Matthias Radestock2013-01-121-21/+24
| | | | | | | |\ \ \ \ \ \ \ \ \ \ \ \ \
| | | | | | | * \ \ \ \ \ \ \ \ \ \ \ \ \ merge bug25397 into bug25395Matthias Radestock2013-01-121-56/+52
| | | | | | | |\ \ \ \ \ \ \ \ \ \ \ \ \ \
| | | | | * | | \ \ \ \ \ \ \ \ \ \ \ \ \ \ merge bug25400 into bug25397Matthias Radestock2013-01-151-64/+57
| | | | | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | which is rather conflict-ridden; essentially requiring the rewriting of the crux of the change in bug25400 in the context of new iterator.
| | | | | | * \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ merge degault into bug25397Matthias Radestock2013-01-151-23/+68
| | | | | | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | |_|_|_|_|_|/ / / / / / / / / / | | | | | | | |/| | | | | | | | | | | | | | |
| | | | | | * | | | | | | | | | | | | | | | | merge default into bug25397Matthias Radestock2013-01-141-56/+52
| | | | | | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | |_|/ / / / / / / / / / / / / / / | | | | | | |/| | | | | | / / / / / / / / / / | | | | | | | | |_|_|_|_|/ / / / / / / / / / | | | | | | | |/| | | | | | | | | | | | | |
| | | | | | | * | | | | | | | | | | | | | | cosmeticMatthias Radestock2013-01-131-2/+2
| | | | | | | | |_|_|_|/ / / / / / / / / / | | | | | | | |/| | | | | | | | | | | | |
| | | | | | | * | | | | | | | | | | | | | only pass the minimum necessary state to 'next'Matthias Radestock2013-01-121-23/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | i.e. the IndexState. The remainder of the State is encapsulated inside the iterator state. Technically we only need q{1-4} and delta, but it's simpler and more obvious to just pass a read-only State around.