summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Klishin <michael@clojurewerkz.org>2016-06-27 16:33:26 +0300
committerMichael Klishin <michael@clojurewerkz.org>2016-06-27 16:33:26 +0300
commitaf644c24d5805ee432ac53e9caa2f814b8d07fac (patch)
treee2a291cbb869d7b6649c42860a89da4bb5e9c1f4 /src
parent5b330057b2eaf5781c4a18398c49bf79769c1c2a (diff)
parentebd33bab54474ea13653a2861314e93151aad4bc (diff)
downloadrabbitmq-server-git-af644c24d5805ee432ac53e9caa2f814b8d07fac.tar.gz
Merge branch 'stable' into rabbitmq-server-802
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_error_logger.erl2
-rw-r--r--src/rabbit_variable_queue.erl5
2 files changed, 5 insertions, 2 deletions
diff --git a/src/rabbit_error_logger.erl b/src/rabbit_error_logger.erl
index 3724b95e9d..20af0c21a1 100644
--- a/src/rabbit_error_logger.erl
+++ b/src/rabbit_error_logger.erl
@@ -54,7 +54,7 @@ start() ->
stop() ->
case error_logger:delete_report_handler(rabbit_error_logger) of
- terminated_ok -> ok;
+ ok -> ok;
{error, module_not_found} -> ok
end.
diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl
index 45dde112a5..7bf7f2ec54 100644
--- a/src/rabbit_variable_queue.erl
+++ b/src/rabbit_variable_queue.erl
@@ -556,7 +556,7 @@ delete_crashed(#amqqueue{name = QName}) ->
ok = rabbit_queue_index:erase(QName).
purge(State = #vqstate { len = Len }) ->
- case is_pending_ack_empty(State) of
+ case is_pending_ack_empty(State) and is_unconfirmed_empty(State) of
true ->
{Len, purge_and_index_reset(State)};
false ->
@@ -1648,6 +1648,9 @@ reset_qi_state(State = #vqstate{index_state = IndexState}) ->
is_pending_ack_empty(State) ->
count_pending_acks(State) =:= 0.
+is_unconfirmed_empty(#vqstate { unconfirmed = UC }) ->
+ gb_sets:is_empty(UC).
+
count_pending_acks(#vqstate { ram_pending_ack = RPA,
disk_pending_ack = DPA,
qi_pending_ack = QPA }) ->