You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Mathias Weinert <we...@mccw.de> on 2011/09/06 08:49:43 UTC

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

On Mon, 08 Aug 2011 07:39:06 +0200, Mathias Weinert wrote:
> Philip Martin <ph...@wandisco.com> wrote on Thu, 04 Aug 2011
> 14:58:53 +0100:
>
>> Mathias Weinert <we...@mccw.de> writes:
>>
>>> Philip Martin <ph...@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.