summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2010-06-22 09:08:47 +0100
committerMatthias Radestock <matthias@rabbitmq.com>2010-06-22 09:08:47 +0100
commit2993e75072b5ba8921d79367bcd8a446a5416f1b (patch)
tree650cd7a0be038a2a58a1f4bdf22b7105491d6545
parent36661f2e27f44a9c08fdaf07dc1225297458f191 (diff)
downloadrabbitmq-server-git-2993e75072b5ba8921d79367bcd8a446a5416f1b.tar.gz
add some more variable_queue state invariant checks
-rw-r--r--src/rabbit_variable_queue.erl11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl
index ff2d57afcd..25dc5910c7 100644
--- a/src/rabbit_variable_queue.erl
+++ b/src/rabbit_variable_queue.erl
@@ -662,7 +662,11 @@ status(#vqstate { q1 = Q1, q2 = Q2, delta = Delta, q3 = Q3, q4 = Q4,
%%----------------------------------------------------------------------------
a(State = #vqstate { q1 = Q1, q2 = Q2, delta = Delta, q3 = Q3, q4 = Q4,
- len = Len, target_ram_msg_count = TargetRamMsgCount }) ->
+ len = Len,
+ persistent_count = PersistentCount,
+ target_ram_msg_count = TargetRamMsgCount,
+ ram_msg_count = RamMsgCount,
+ ram_index_count = RamIndexCount }) ->
E1 = queue:is_empty(Q1),
E2 = bpqueue:is_empty(Q2),
ED = Delta#delta.count == 0,
@@ -677,6 +681,11 @@ a(State = #vqstate { q1 = Q1, q2 = Q2, delta = Delta, q3 = Q3, q4 = Q4,
true = (E1 and E2 and E4) or not TZ,
true = LZ == (E3 and E4),
+ true = Len >= 0,
+ true = PersistentCount >= 0,
+ true = RamMsgCount >= 0,
+ true = RamIndexCount >= 0,
+
State.
one_if(true ) -> 1;