summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2013-10-21 13:35:14 +0100
committerSimon MacMullen <simon@rabbitmq.com>2013-10-21 13:35:14 +0100
commit4163613eb274f851ae0e83038ea0a906491720e5 (patch)
treefa16adab69f14c336c3ed2abbeb15a282cce7a06
parentb4d32d99a0f8cc8e171885f8de6a404f882de1e3 (diff)
downloadrabbitmq-server-git-4163613eb274f851ae0e83038ea0a906491720e5.tar.gz
Sync before rename, since the rename is not affected by the sync and doing it this way round means we can't expose the results of a half-written but renamed file by crashing after the rename but before the sync.
-rw-r--r--src/rabbit_file.erl2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/rabbit_file.erl b/src/rabbit_file.erl
index 4cf314cae2..1a766b05b0 100644
--- a/src/rabbit_file.erl
+++ b/src/rabbit_file.erl
@@ -181,8 +181,8 @@ with_synced_copy(Path, Modes, Fun) ->
{ok, Hdl} ->
try
Result = Fun(Hdl),
- ok = prim_file:rename(Bak, Path),
ok = prim_file:sync(Hdl),
+ ok = prim_file:rename(Bak, Path),
Result
after
prim_file:close(Hdl)