On 22 December 2014 at 23:16, Stefan Fuhrmann <stefan.fuhrm...@wandisco.com> wrote: > On Mon, Dec 22, 2014 at 2:09 PM, Ivan Zhakov <i...@visualsvn.com> wrote: >> >> On 19 December 2014 at 19:26, Ivan Zhakov <i...@visualsvn.com> wrote: >> > >> > On 19 December 2014 at 18:55, Branko Čibej <br...@wandisco.com> wrote: >> > > On 19.12.2014 15:37, Ivan Zhakov wrote: [...] >> >> So the best option will be to commit Bert's >> > >> patch, but I cannot do this since I'm not APR committer :( >> > >> >> > >> Thoughts? >> > > >> > > >> > > >> > > Thanks for the reminder ... I remember that thread on apr-dev, but it >> > > slipped my mind. If I don't review and commit Bert's patch in the next >> > > week or so, feel free to send another nagging e-mail. :) >> > > >> > Will do! >> > >> > > FWIW, committing to APR trunk isn't enough: should be back-ported to >> > > 1.6 >> > > and 1.5, too. >> > > >> > Yes, you are right. We need this to be backported to 1.6 and 1.5 APR >> > branches. >> > >> >> Btw it's not the only problem with APR read/write lock on Windows and >> OS/2: rwlock sometimes allows a writer to take the lock while a reader >> has the lock. The detailed explanation of possible race-condition >> given in issue 45455 [1]. >> >> Subversion 1.8.x is affected by this issue and FSFS membuffer cache >> may be corrupted. I'm thinking about backporting r1611380 to 1.8.x or >> switch back to simple mutex for FSFS caches for all platforms. > > > We should backport r1611380. This probably needs > a backport branch. > I agree that r1611380 is best workaround for 1.8.x, so I've nominated it to 1.8.x.
But I think we should avoid using different synchronization mechanism on different platforms in long-term (trunk and 1.9.x): it increases number of configurations that need to be tested/covered. The recently discovered named atomic problems on Windows [1] is a good example why we should avoid platform specific code in Subversion if possible. So I think we should either fix rwlock problems in APR on Windows or switch back to simple mutex for FSFS caches for all platforms. I'm fine with both approaches. [1] http://svn.haxx.se/dev/archive-2014-09/0048.shtml -- Ivan Zhakov