subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bert Huijben <>
Subject RE: svn commit: r1483781 -
Date Fri, 17 May 2013 13:18:35 GMT
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Are you sure this resolves your actual problem ?

For really small files Windows doesn't create a full on disk
representation of the file and stores the data inside the MFT.

Given that the reproduction requires a hardware failure I'm not sure if
we are just slowing down to resolve/hide symptoms instead of resolving
the problem.

Introducing a major sleep operation would probably resolve the same
symptom as it would make it unlikely to kill the power exactly at the
right point in time.

The journaling properties of ntfs and other similarly designed file
systems should have removed the full flush requirements as each
operation is only performed after committing the journal.

Bert From:
Sent: =E2=80=8E17/=E2=80=8E05/=E2=80=8E2013 15:07
Subject: svn commit: r1483781
- /subversion/trunk/subversion/libsvn_subr/io.c
Author: ivan
Date: Fri May 17 13:01:08 2013
New Revision: 1483781

Fix FSFS repository corruption on power or network disk failure on Windows:

This is revert of r1082451.

* subversion/libsvn_subr/io.c
  (svn_io_write_unique): Perform svn_io_file_flush_to_disk() on all=20


Modified: subversion/trunk/subversion/libsvn_subr/io.c
--- subversion/trunk/subversion/libsvn_subr/io.c (original)
+++ subversion/trunk/subversion/libsvn_subr/io.c Fri May 17 13:01:08 2013
@@ -3472,17 +3472,8 @@ svn_io_write_unique(const char **tmp_pat
   err =3D svn_io_file_write_full(new_file, buf, nbytes, NULL, pool);
-  /* ### BH: Windows doesn't have the race condition between the write and=
-     ###     rename that other operating systems might have. So allow wind=
-     ###     to decide when it wants to perform the disk synchronization u=
-     ###     the normal file locking and journaling filesystem rules.
-     ### Note that this function doesn't handle the rename, so we aren't e=
-     ### sure that we really have to sync. */
-#ifndef WIN32
-  if (!err && nbytes > 0)
+  if (!err)
     err =3D svn_io_file_flush_to_disk(new_file, pool);
   return svn_error_trace(

View raw message