Skip to content

Commit bd46898

Browse files
michaelklishinlukebakken
authored andcommitted
Merge pull request #1888 from rabbitmq/rabbitmq-server-1887
Check exclusive owner before durable argument (cherry picked from commit d680193)
1 parent 89c293d commit bd46898

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

src/rabbit_amqqueue.erl

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -532,13 +532,13 @@ with_or_die(Name, F) ->
532532
end).
533533

534534
assert_equivalence(#amqqueue{name = QName,
535-
durable = Durable,
536-
auto_delete = AD} = Q,
537-
Durable1, AD1, Args1, Owner) ->
538-
rabbit_misc:assert_field_equivalence(Durable, Durable1, QName, durable),
539-
rabbit_misc:assert_field_equivalence(AD, AD1, QName, auto_delete),
540-
assert_args_equivalence(Q, Args1),
541-
check_exclusive_access(Q, Owner, strict).
535+
durable = DurableQ,
536+
auto_delete = AutoDeleteQ} = Q,
537+
DurableDeclare, AutoDeleteDeclare, Args1, Owner) ->
538+
ok = check_exclusive_access(Q, Owner, strict),
539+
ok = rabbit_misc:assert_field_equivalence(DurableQ, DurableDeclare, QName, durable),
540+
ok = rabbit_misc:assert_field_equivalence(AutoDeleteQ, AutoDeleteDeclare, QName, auto_delete),
541+
ok = assert_args_equivalence(Q, Args1).
542542

543543
check_exclusive_access(Q, Owner) -> check_exclusive_access(Q, Owner, lax).
544544

@@ -549,7 +549,9 @@ check_exclusive_access(#amqqueue{exclusive_owner = none}, _ReaderPid, lax) ->
549549
check_exclusive_access(#amqqueue{name = QueueName}, _ReaderPid, _MatchType) ->
550550
rabbit_misc:protocol_error(
551551
resource_locked,
552-
"cannot obtain exclusive access to locked ~s",
552+
"cannot obtain exclusive access to locked ~s. It could be originally "
553+
"declared on another connection or the exclusive property value does not "
554+
"match that of the original declaration.",
553555
[rabbit_misc:rs(QueueName)]).
554556

555557
with_exclusive_access_or_die(Name, ReaderPid, F) ->

0 commit comments

Comments
 (0)