diff options
| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | src/rabbit_disk_queue.erl | 3 |
2 files changed, 3 insertions, 2 deletions
@@ -69,7 +69,7 @@ clean: cleandb rm -f docs/*.[0-9].gz cleandb: stop-node - erl -mnesia dir '"$(RABBITMQ_MNESIA_DIR)"' -noshell -eval 'lists:foreach(fun file:delete/1, filelib:wildcard(mnesia:system_info(directory) ++ "/*")), halt().' + erl -mnesia dir '"$(RABBITMQ_MNESIA_DIR)"' -noshell -eval 'lists:foreach(fun file:delete/1, filelib:wildcard(mnesia:system_info(directory) ++ "/*") ++ filelib:wildcard(filename:join(mnesia:system_info(directory), "rabbit_disk_queue/*"))), halt().' ############ various tasks to interact with RabbitMQ ################### diff --git a/src/rabbit_disk_queue.erl b/src/rabbit_disk_queue.erl index e7100061fc..391c9b715c 100644 --- a/src/rabbit_disk_queue.erl +++ b/src/rabbit_disk_queue.erl @@ -269,7 +269,8 @@ internal_tx_commit(Q, MsgIds, State = #dqstate { msg_location = MsgLocation, }) -> {atomic, Sync} = mnesia:transaction( - fun() -> lists:foldl(fun (MsgId, Acc) -> + fun() -> ok = mnesia:write_lock_table(rabbit_disk_queue), + lists:foldl(fun (MsgId, Acc) -> [{MsgId, _RefCount, File, _Offset, _TotalSize}] = ets:lookup(MsgLocation, MsgId), ok = mnesia:write(rabbit_disk_queue, #dq_msg_loc { queue_and_msg_id = {MsgId, Q}, is_delivered = false}, write), |
