Daniel Berlin <dberlin@dberlin.org> writes:
> On Mon, 2006-03-13 at 19:43 -0500, Greg Hudson wrote:
>> On Mon, 2006-03-13 at 08:58 -0500, Daniel Berlin wrote:
>> > We can't make every expensive operation cancellable without needing
>> > cleanup afterwards, and don't do so anyway. Commit will leave locks,
>> > for example.
>>
>> It will?
>
> Yup.
>
> dberlin@linux:/mnt/gccstuff/gcc-clean/gcc> svn commit
> svn: Caught signal
> dberlin@linux:/mnt/gccstuff/gcc-clean/gcc> svn commit
> svn: Working copy
> '/mnt/gccstuff/gcc-clean/gcc/testsuite/gcc.c-torture/execute/builtins/lib' locked
> svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for
> details)
> dberlin@linux:/mnt/gccstuff/gcc-clean/gcc>
That looks like a bug, the only locks that get left behind should be
those protecting log files. It's probably this:
Index: subversion/libsvn_wc/lock.c
===================================================================
--- subversion/libsvn_wc/lock.c (revision 18867)
+++ subversion/libsvn_wc/lock.c (working copy)
@@ -512,7 +512,16 @@
/* See if someone wants to cancel this operation. */
if (cancel_func)
- SVN_ERR(cancel_func(cancel_baton));
+ {
+ err = cancel_func(cancel_baton);
+ if (err)
+ {
+ /* This closes all the children in temporary hash as well */
+ svn_error_clear(svn_wc_adm_close(lock));
+ svn_pool_destroy(subpool);
+ return err;
+ }
+ }
apr_hash_this(hi, NULL, NULL, &val);
entry = val;
--
Philip Martin
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Mar 14 15:23:09 2006