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

Re: Regression in bindings? 1.7/1.8 vs 1.6

From: Philip Martin <philip.martin_at_wandisco.com>
Date: Mon, 11 Aug 2014 19:34:12 +0100

Philip Martin <philip.martin_at_wandisco.com> writes:

> svn_fs_txn_root() calls svn_fs_fs__initialize_txn_caches() and if that
> detects concurrent transactions it sets ffd->txn_dir_cache to NULL so
> the out-of-date cache doesn't get used and the property change on disk
> makes it into the revision.

The txn_dir_cache gets cleared when the pool associated with the
txn_root is cleared and so the problem only occurs when the server holds
a root open for long enough: the txn_root used to build the transaction
has to remain open when the transaction is committed. svnserve and
ra_local both do this and show the problem but for apache/mod_dav_svn it
depends on exactly when apache clears the request pool between requests.

  1. client sends MKCOL
  2. apache process MKCOL and populates txn_dir_cache
  3. apache sends MKCOL response
  4. apache clears MKCOL request pool
  5. client sends MERGE
  6. apache process MERGE

5 can happen before 4 since two processes are involved but can 6 happen
before 4? I've not seen it happen with the worker MPM but I'm not
familiar with all the MPMs.

Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*
Received on 2014-08-11 20:34:44 CEST

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.