On Mon, 08 Aug 2011 07:39:06 +0200, Mathias Weinert wrote:
Philip Martin <philip.mar...@wandisco.com> wrote on Thu, 04 Aug 2011
14:58:53 +0100:

Mathias Weinert <w...@mccw.de> writes:

Philip Martin <philip.mar...@wandisco.com> wrote:

Looking at this again, the call to svn_io_file_open already has a retry loop, so the original error seems to imply that either a) the file is in use for more than the retry delay or that b) there is some error code
missing from the retry logic.

Maybe we should add ERROR_USER_MAPPED_FILE to the retry logic (see
attached patch).

BTW the problem only occurs when using Windows svnadmin but not when
using cygwin svnadmin (both executed in the same environment) (on
cygwin another retry_loop is used which uses different error codes).

Unfortunately I can't test the proposed change as I don't have an
environment to build Subversion on Windows (without using cygwin).

--- subversion/libsvn_subr/io.c.orig 2011-08-04 15:16:10.723195200 +0200
+++ subversion/libsvn_subr/io.c 2011-08-04 15:18:29.270766000 +0200
@@ -131,7 +131,8 @@
#define WIN32_RETRY_LOOP(err, expr) \ RETRY_LOOP(err, expr, (os_err == ERROR_ACCESS_DENIED \ || os_err == ERROR_SHARING_VIOLATION \ - || os_err == ERROR_DIR_NOT_EMPTY), \ + || os_err == ERROR_DIR_NOT_EMPTY \ + || os_err == ERROR_USER_MAPPED_FILE), \
              1)
 #else
 #define WIN32_RETRY_LOOP(err, expr) ((void)0)

That does look like the right sort of thing.  Any of our Windows
developers want to take a look?

I am willing to test it if someone provided me an svnadmin.exe.

I am still willing to test this, but I need svnadmin and dlls or a static version of svnadmin compiled for Windows (not cygwin).
Or maybe a Windows developer can test it himself.

As already written earlier, searching the web shows that I am not the only one having this problem.

Reply via email to