summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--src/rabbit_disk_queue.erl3
2 files changed, 3 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 47aa586c8c..b7464244c2 100644
--- a/Makefile
+++ b/Makefile
@@ -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),