diff options
| -rw-r--r-- | src/rabbit_variable_queue.erl | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl index 0bc288173f..6745621964 100644 --- a/src/rabbit_variable_queue.erl +++ b/src/rabbit_variable_queue.erl @@ -1060,6 +1060,7 @@ a(State = #vqstate { q1 = Q1, q2 = Q2, delta = Delta, q3 = Q3, q4 = Q4, E3 = ?QUEUE:is_empty(Q3), E4 = ?QUEUE:is_empty(Q4), LZ = Len == 0, + L3 = ?QUEUE:len(Q3), %% q1 must always be empty, since q1 only get messages during %% publish, but for lazy queues messages go straight to delta. @@ -1074,15 +1075,18 @@ a(State = #vqstate { q1 = Q1, q2 = Q2, delta = Delta, q3 = Q3, q4 = Q4, %% publish, but for lazy queues messages go straight to delta. true = E4, - %% if the queue is empty, then delta is empty and q3 is empty + %% if the queue is empty, then delta is empty and q3 is empty. true = LZ == (ED and E3), + %% RamMsgCount should be equal to Q3's length. + true = RamMsgCount == L3, + true = Len >= 0, true = Bytes >= 0, true = UnackedBytes >= 0, true = PersistentCount >= 0, true = PersistentBytes >= 0, - true = RamMsgCount == 0, + true = RamMsgCount >= 0, true = RamMsgCount =< Len, true = RamBytes >= 0, true = RamBytes =< Bytes + UnackedBytes, |
