diff options
| author | Ben Hood <0x6e6562@gmail.com> | 2008-11-20 14:31:54 +0000 |
|---|---|---|
| committer | Ben Hood <0x6e6562@gmail.com> | 2008-11-20 14:31:54 +0000 |
| commit | 657c359e24ec8c300e2fd89a4bfc8201e6b4c3b4 (patch) | |
| tree | a88e74653d2b845085e86f368463e6343545b454 /src | |
| parent | f8b2adc26c76082254d9a78a7ded2eaf61dc5d99 (diff) | |
| parent | 8f7d8312f0e2aaf786a72325fdf42202325207b1 (diff) | |
| download | rabbitmq-server-git-657c359e24ec8c300e2fd89a4bfc8201e6b4c3b4.tar.gz | |
Merged default into 18557
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_exchange.erl | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/rabbit_exchange.erl b/src/rabbit_exchange.erl index a8c54438a2..58b8d7d60a 100644 --- a/src/rabbit_exchange.erl +++ b/src/rabbit_exchange.erl @@ -268,9 +268,17 @@ exchanges_for_queue(QueueName) -> has_bindings(ExchangeName) -> MatchHead = #route{binding = #binding{exchange_name = ExchangeName, - queue_name = '$1', _ = '_'}}, - continue(mnesia:select(route, [{MatchHead, [], ['$1']}], 1, read)). + try + continue(mnesia:select(route, [{MatchHead, [], ['$_']}], 1, read)) + catch exit:{aborted, {badarg, _}} -> + %% work around OTP-7025, which was fixed in R12B-1, by + %% falling back on a less efficient method + case mnesia:match_object(MatchHead) of + [] -> false; + [_|_] -> true + end + end. continue('$end_of_table') -> false; continue({[_|_], _}) -> true; |
