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

[PATCH RFC] WIN32_RETRY_LOOP on Cygwin

From: Bernard Blackham <bernard_at_largestprime.net>
Date: Tue, 27 May 2008 16:50:19 +0800

The reply trail summarises the issue:

On Fri, May 02, 2008 at 02:36:15AM +0100, Max Bowsher wrote:
> Karl Fogel wrote:
> > Spiro Trikaliotis <news-200803_at_trikaliotis.net> writes:
> > > In subversion-1.5.0-rc4/subversion/libsvn_subr/io.c, the
> > > WIN32_RETRY_LOOP is defined as loop only if WIN32 is defined.
> > > Unfortunately, for Cygwin, this means that this work-aroundy is not
> > > performed, as WIN32 is not defined there.
> > >
> > > Is it possible to change this
> > > #ifdef WIN32
> > > to
> > > #if defined(WIN32) || defined(__CYGWIN__)
> > >
> > > so Cygwin can profit from this work-around, too?
> >
> > [...]
> > Cygwin doesn't mask over the
> > behavior of other processes in Windows, or low-level filesystem
> > behaviors, right? So it makes sense that WIN32_RETRY_LOOP() would be
> > necessary in Cygwin too.
>
> People occasionally would suggest using WIN32_RETRY_LOOP on Cygwin. I
> never patched it into the Cygwin packages during my tenure, because I
> never once experienced any Subversion operation failing in a relevant
> way. But then, perhaps that's because I was just lucky, and tended to
> run a fairly clean system. *shrug*

I'm one of the unlucky ones who runs into this on any large checkout
with a few thousand files. I've attached patches for 1.4.5 (current
in Cygwin) and trunk (trunk patch also applies to 1.4.6).

I've only tested the 1.4.5 patch as that's the latest in Cygwin.
The problem goes away completely with this patch.

I had to use the APR functions for detecting errors, as the previous
errors were Win32-specific. Using APR_STATUS_IS_EACCES actually
tests for many more errors than previously. This might hurt
performance a little - I tried to measure it, but my checkout times
vary quite wildly and any differences are lost in the noise here.

Bewarned, the trunk/1.4.6 patch is completely untested - I haven't
put the time into getting 1.4.6 or 1.5.0-rcX going under Cygwin yet.

Cheers,
Bernard.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org

Received on 2008-05-27 10:50:36 CEST

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