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 | 202a36f38bf480d4833f4f9847d03006c8d00952 (patch) | |
tree | 213694ed241164a5d362e9548a286410b983f910 | |
parent | 0b0da3203790cb851931a167e007f59c608d586a (diff) | |
parent | 79b05bef4e1eeed3db0f222fd94fad78d09c4135 (diff) | |
download | rabbitmq-server-202a36f38bf480d4833f4f9847d03006c8d00952.tar.gz |
Merged bug25576 into stable
-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 ea70208f..9a2d2a4a 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 |