diff options
| author | Matthew Sackman <matthew@lshift.net> | 2010-05-05 14:55:05 +0100 |
|---|---|---|
| committer | Matthew Sackman <matthew@lshift.net> | 2010-05-05 14:55:05 +0100 |
| commit | b954950f973d80c5864187f53f8cf5093f8f1118 (patch) | |
| tree | 9807575165ee3a43ac86144793a8c09e384a4270 | |
| parent | e4579eca831999fc66f0545f7d6af93aa182db19 (diff) | |
| download | rabbitmq-server-git-b954950f973d80c5864187f53f8cf5093f8f1118.tar.gz | |
%%%%
| -rw-r--r-- | src/rabbit_msg_store.erl | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/rabbit_msg_store.erl b/src/rabbit_msg_store.erl index 5e78544762..5c5cdb2d2a 100644 --- a/src/rabbit_msg_store.erl +++ b/src/rabbit_msg_store.erl @@ -456,7 +456,7 @@ client_read3(Server, %% If we get a badarg here, then the GC has finished and %% deleted our file. Try going around again. Otherwise, %% just defer. - + %% %% badarg scenario: we lookup, msg_store locks, gc starts, %% gc ends, we +1 readers, msg_store ets:deletes (and %% unlocks the dest) @@ -469,13 +469,12 @@ client_read3(Server, %% start up now, and isn't running, so nothing will tell %% us from now on to close the handle if it's already %% open. - + %% %% Finally, we need to recheck that the msg is still at %% the same place - it's possible an entire GC ran between %% us doing the lookup and the +1 on the readers. (Same as %% badarg scenario above, but we don't have a missing file %% - we just have the /wrong/ file). - case index_lookup(Guid, CState) of MsgLocation = #msg_location { file = File } -> %% Still the same file. |
