Philip Martin <philip.mar...@wandisco.com> writes: > Without the cache change_rev_prop_body would return > SVN_ERR_FS_PROP_BASEVALUE_MISMATCH if the current value doesn't match > the supplied value. The cache means the current value might be > out-of-date.
I can demonstrate a race. Set log to 'xx' $ svn ps --revprop -r3 svn:log xx file://`pwd`/repo Start a change to 'yy': $ gdb -arg svn ps --revprop -r3 svn:log yy file://`pwd`/repo (gdb) b svn_fs_fs__change_rev_prop (gdb) r breakpoint 1 Racing change to 'zz': $ svn ps --revprop -r3 svn:log zz file://`pwd`/repo Continue change to 'yy' (gdb) b change_rev_prop_body (gdb) c breakpoint 2 (gbd) n (gbd) n 7683 if (cb->old_value_p) (gdb) p cb->old_value_p[0].data $2 = 0x68bbf8 "xx" The "atomic" change is being done based on the ood value. -- uberSVN: Apache Subversion Made Easy http://www.uberSVN.com