[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Problems with transaction file "next-ids" on Windows

From: Philip Martin <philip.martin_at_wandisco.com>
Date: Thu, 04 Aug 2011 14:58:53 +0100

Mathias Weinert <wein_at_mccw.de> writes:

> Philip Martin <philip.martin_at_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?

-- 
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com
Received on 2011-08-04 15:59:29 CEST

This is an archived mail posted to the Subversion Dev mailing list.