Re: [Patch] Fix multiple reporting of the same lock in FSFS.

2015-02-12 Thread Philip Martin
Sergey Raevskiy writes: > Follow-up to r1658482: Refactor walk_locks() function: remove the redundant > complexity of walk_digest_files() / walk_digests_callback_t. Committed in r1659217. Thanks! -- Philip Martin | Subversion Committer WANdisco // *Non-Stop Data*

Re: [Patch] Fix multiple reporting of the same lock in FSFS.

2015-02-10 Thread Sergey Raevskiy
>> I suspect the implementation is now more complicated than necessary. >> walk_locks and walk_locks_baton could be removed, walk_digest_files >> could be renamed to indicate that only a single digest file is accessed. >> The callers of walk_locks would call the renamed function directly. > > Yes.

Re: [Patch] Fix multiple reporting of the same lock in FSFS.

2015-02-09 Thread Sergey Raevskiy
> I suspect the implementation is now more complicated than necessary. > walk_locks and walk_locks_baton could be removed, walk_digest_files > could be renamed to indicate that only a single digest file is accessed. > The callers of walk_locks would call the renamed function directly. Yes. I'm goi

Re: [Patch] Fix multiple reporting of the same lock in FSFS.

2015-02-09 Thread Philip Martin
Sergey Raevskiy writes: > To reproduce this bug in test, I've emulated nested locks by creating a file > ('/A'), locking it and then replacing by directory with same name. This looks > like a 'directory lock', and I am trying to say that if this happens in real > life, the FS API would behave in

Re: [Patch] Fix multiple reporting of the same lock in FSFS.

2015-02-09 Thread Sergey Raevskiy
> This is issue 2507 > > http://subversion.tigris.org/issues/show_bug.cgi?id=2507 > > Commit does not remove locks, lock removal is a separate step after > commit. However that doesn't work well when a commit removes a locked > item, after such a commit the remaining lock is invalid and should not

Re: [Patch] Fix multiple reporting of the same lock in FSFS.

2015-02-09 Thread Philip Martin
Sergey Raevskiy writes: > + /* Make a file '/A'. */ > + SVN_ERR(svn_fs_begin_txn(&txn, fs, 0, pool)); > + SVN_ERR(svn_fs_txn_root(&root, txn, pool)); > + SVN_ERR(svn_fs_make_file(root, "/A", pool)); > + SVN_ERR(svn_fs_commit_txn(&conflict, &newrev, txn, pool)); > + > + /* Obtain a lock on '

[Patch] Fix multiple reporting of the same lock in FSFS.

2015-02-09 Thread Sergey Raevskiy
Hi! I've discovered interesting thing about the svn_fs_fs__get_locks() function. In some unusual, but not impossible scenarios this function could report the same lock multiple times: there should be the path with lock, and one of its children should be locked as well (see the test in attached pa