summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLuke Bakken <luke@bakken.io>2018-12-17 12:49:36 -0800
committerGitHub <noreply@github.com>2018-12-17 12:49:36 -0800
commit6b73cadf47b2a23be04c3c25fed216f3e8240458 (patch)
treec1676246d23b7ed3dddb984187e3d46e44da72db /src
parentbc662bc0a807f5b0ad0681fb2bcf49534f93729c (diff)
parent0be4ac363e5b65eeedfda89d4cb681dfb97e2c7f (diff)
downloadrabbitmq-server-git-6b73cadf47b2a23be04c3c25fed216f3e8240458.tar.gz
Merge pull request #1685 from rabbitmq/rabbitmq-server-1682
Take "true" case into consideration
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_amqqueue.erl12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl
index 016443bb73..d938bece8c 100644
--- a/src/rabbit_amqqueue.erl
+++ b/src/rabbit_amqqueue.erl
@@ -584,7 +584,17 @@ retry_wait(Q = #amqqueue{pid = QPid, name = Name, state = QState}, F, E, Retries
{stopped, false} ->
E({absent, Q, stopped});
_ ->
- false = rabbit_mnesia:is_process_alive(QPid),
+ case rabbit_mnesia:is_process_alive(QPid) of
+ true ->
+ % rabbitmq-server#1682
+ % The old check would have crashed here,
+ % instead, log it and run the exit fun. absent & alive is weird,
+ % but better than crashing with badmatch,true
+ rabbit_log:debug("Unexpected alive queue process ~p~n", [QPid]),
+ E({absent, Q, alive});
+ false ->
+ ok % Expected result
+ end,
timer:sleep(30),
with(Name, F, E, RetriesLeft - 1)
end.