summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2013-06-17 16:38:59 +0100
committerSimon MacMullen <simon@rabbitmq.com>2013-06-17 16:38:59 +0100
commit5f0614d143470458910ca9c262599e6f24fcf1d3 (patch)
tree0108809a336fb0cd405ec0213db359ef040b4d55
parent9fd4a06fcb563df24689c3e87b8d38e6242c230a (diff)
downloadrabbitmq-server-bug25611.tar.gz
Throw the key too. And if the server side still fails try to fail with more information.bug25611
-rw-r--r--src/rabbit_msg_store.erl5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/rabbit_msg_store.erl b/src/rabbit_msg_store.erl
index 35c0239f..7c2aa13c 100644
--- a/src/rabbit_msg_store.erl
+++ b/src/rabbit_msg_store.erl
@@ -630,7 +630,7 @@ client_update_flying(Diff, MsgId, #client_msstate { flying_ets = FlyingEts,
false -> try ets:update_counter(FlyingEts, Key, {2, Diff}) of
0 -> ok;
Diff -> ok;
- Err -> throw({unexpected_flying_ets_counter, Diff, Err})
+ Err -> throw({bad_flying_ets_update, Diff, Err, Key})
catch error:badarg ->
%% this is guaranteed to succeed since the
%% server only removes and updates flying_ets
@@ -983,7 +983,8 @@ update_flying(Diff, MsgId, CRef, #msstate { flying_ets = FlyingEts }) ->
true = ets:delete_object(FlyingEts, {Key, 0}),
process;
[{_, 0}] -> true = ets:delete_object(FlyingEts, {Key, 0}),
- ignore
+ ignore;
+ [{_, Err}] -> throw({bad_flying_ets_record, Diff, Err, Key})
end.
write_action({true, not_found}, _MsgId, State) ->