diff options
| author | Daniil Fedotov <dfedotov@pivotal.io> | 2017-08-02 16:21:40 +0100 |
|---|---|---|
| committer | Daniil Fedotov <dfedotov@pivotal.io> | 2017-08-02 16:21:40 +0100 |
| commit | b753442da578029d49478f2511e647fe29af9b63 (patch) | |
| tree | d7184a048f6df71ec9966a4dc4804a6f6fd895d7 /src | |
| parent | 18346099708db694f010a964953e137d2e8dd490 (diff) | |
| download | rabbitmq-server-git-b753442da578029d49478f2511e647fe29af9b63.tar.gz | |
Raise a protocol error when declaring a queue on a stopped vhostv3.7.0-beta.19
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_amqqueue.erl | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl index 4a7a271a6e..a5480f707e 100644 --- a/src/rabbit_amqqueue.erl +++ b/src/rabbit_amqqueue.erl @@ -339,11 +339,17 @@ declare(QueueName = #resource{virtual_host = VHost}, Durable, AutoDelete, Args, {ok, Node0} -> Node0; {error, _} -> Node end, - Node1 = rabbit_mirror_queue_misc:initial_queue_node(Q, Node1), - gen_server2:call( - rabbit_amqqueue_sup_sup:start_queue_process(Node1, Q, declare), - {init, new}, infinity). + case rabbit_vhost_sup_sup:get_vhost_sup(VHost, Node1) of + {ok, _} -> + gen_server2:call( + rabbit_amqqueue_sup_sup:start_queue_process(Node1, Q, declare), + {init, new}, infinity); + {error, Error} -> + rabbit_misc:protocol_error(internal_error, + "Cannot declare a queue '~s' on node '~s': ~255p", + [rabbit_misc:rs(QueueName), Node1, Error]) + end. internal_declare(Q, true) -> rabbit_misc:execute_mnesia_tx_with_tail( |
