diff options
| author | Emile Joubert <emile@rabbitmq.com> | 2013-06-06 12:52:49 +0100 |
|---|---|---|
| committer | Emile Joubert <emile@rabbitmq.com> | 2013-06-06 12:52:49 +0100 |
| commit | 9da03ca296d3b143056f345a167da7c953f699e1 (patch) | |
| tree | 213694ed241164a5d362e9548a286410b983f910 /src | |
| parent | 818fa1245361271114ffc66d418ea6f8c9d5f10e (diff) | |
| parent | e7ef7741e9e3b1989e9d8c0f80d0184f5e0fc694 (diff) | |
| download | rabbitmq-server-git-9da03ca296d3b143056f345a167da7c953f699e1.tar.gz | |
Merged bug25576 into stable
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_queue_index.erl | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/rabbit_queue_index.erl b/src/rabbit_queue_index.erl index ea70208fac..9a2d2a4a5d 100644 --- a/src/rabbit_queue_index.erl +++ b/src/rabbit_queue_index.erl @@ -1022,7 +1022,18 @@ journal_minus_segment1({no_pub, del, ack}, {?PUB, no_del, no_ack}) -> journal_minus_segment1({no_pub, del, ack}, {?PUB, del, no_ack}) -> {{no_pub, no_del, ack}, 0}; journal_minus_segment1({no_pub, del, ack}, {?PUB, del, ack}) -> - {undefined, -1}. + {undefined, -1}; + +%% Missing segment. If flush_journal/1 is interrupted after deleting +%% the segment but before truncating the journal we can get these +%% cases: a delivery and an acknowledgement in the journal, or just an +%% acknowledgement in the journal, but with no segment. In both cases +%% we have really forgotten the message; so ignore what's in the +%% journal. +journal_minus_segment1({no_pub, no_del, ack}, undefined) -> + {undefined, 0}; +journal_minus_segment1({no_pub, del, ack}, undefined) -> + {undefined, 0}. %%---------------------------------------------------------------------------- %% upgrade |
