summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sackman <matthew@rabbitmq.com>2010-10-13 13:35:59 +0100
committerMatthew Sackman <matthew@rabbitmq.com>2010-10-13 13:35:59 +0100
commitc729982d6a24f4dbfd8ebacc462ec41bb3c24b3a (patch)
tree94e55fb7716aa66dbd91da01f9a7302896b74a87
parent491522aa0fc84d72d00bae1c116a2e5a95c7320e (diff)
downloadrabbitmq-server-git-c729982d6a24f4dbfd8ebacc462ec41bb3c24b3a.tar.gz
Don't do a dirty_read within a transaction
-rw-r--r--src/rabbit_binding.erl6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/rabbit_binding.erl b/src/rabbit_binding.erl
index 53c9c66359..6270089323 100644
--- a/src/rabbit_binding.erl
+++ b/src/rabbit_binding.erl
@@ -350,10 +350,10 @@ group_bindings_fold(Fun, SrcName, Acc, Removed, Bindings) ->
group_bindings_fold(Fun, Fun(SrcName, Bindings, Acc), Removed).
maybe_auto_delete(XName, Bindings, Deletions) ->
- case rabbit_exchange:lookup(XName) of
- {error, not_found} ->
+ case mnesia:read(rabbit_exchange, XName) of
+ [] ->
add_deletion(XName, {undefined, not_deleted, Bindings}, Deletions);
- {ok, X} ->
+ [X] ->
add_deletion(XName, {X, not_deleted, Bindings},
case rabbit_exchange:maybe_auto_delete(X) of
not_deleted -> Deletions;