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

Re: Restarting Apache during a commit through a proxy

From: Blair Zajac <blair_at_orcaware.com>
Date: Wed, 16 Feb 2011 13:44:14 -0800

On 02/16/2011 08:44 AM, Philip Martin wrote:
> So if the timing is just right it's possible for one Apache process to
> start writing the transaction, for that process to stop, and for another
> process to take over the commit. WANdisco observed problems on FSFS
> where the transaction is synced at the end of the commit, not for each
> http request. What ends up in the transaction probably depends on the
> details of the kernel memory and disk caching, the system load, the
> underlying OS filesystem, etc.

This is a concern when the repository is hosted on an NFS or other
network attached storage? If all the Apache processes are on the same
system, then I wouldn't expect any issues.

> In my testing with squid I have not managed to produce a corrupt commit,
> but I suspect that under the right conditions it would happen. I think
> that getting mod_dav_svn to sync before acknowledging each http request
> is a non-starter, for performance reasons. Can mod_dav_svn detect that
> the connection has changed? It's too late to get the old process to
> sync, but perhaps we could abort the commit? Some valid commits would
> fail, but it would avoid the small risk of a corrupt commit.

I think an fsfs.conf option to say that you want everything fsync()ed
would be an acceptable solution, for people that deploy on NFS.

Blair
Received on 2011-02-16 22:44:58 CET

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.