[prev in list] [next in list] [prev in thread] [next in thread] 

List:       subversion-issues
Subject:    [Issue 4192] New - wc locks not removes when automatic cleanup clears workqueue
From:       philip () tigris ! org
Date:       2012-06-12 13:48:37
Message-ID: iz4192 () subversion ! tigris ! org
[Download RAW message or body]

http://subversion.tigris.org/issues/show_bug.cgi?id=4192
                 Issue #|4192
                 Summary|wc locks not removes when automatic cleanup clears wor
                        |kqueue
               Component|subversion
                 Version|trunk
                Platform|All
                     URL|
              OS/Version|All
                  Status|NEW
       Status whiteboard|
                Keywords|
              Resolution|
              Issue type|DEFECT
                Priority|P3
            Subcomponent|libsvn_wc
             Assigned to|issues@subversion
             Reported by|philip






------- Additional comments from philip@tigris.org Tue Jun 12 06:48:36 -0700 2012 -------
Pool cleanup attempts to remove run any outstanding workqueue items and remove
working copy locks.  Lock removal when there are no workqueue items appears to
work.  Workqueue running also appears to work.  However lock removal after
running a workqueue item doesn't work.

Patch update_editor.c:close_file to return an error.  Then run and update that
modifies a file.  The working copy is left unlocked showing that lock removal
without workqueue items works.

Patch workqueue.c:run_file_install to return a one-time error:

Index: ../src/subversion/libsvn_wc/workqueue.c
===================================================================
--- ../src/subversion/libsvn_wc/workqueue.c     (revision 1349304)
+++ ../src/subversion/libsvn_wc/workqueue.c     (working copy)
@@ -645,6 +645,15 @@
   apr_hash_t *props;
   apr_time_t changed_date;
 
+  {
+    static int f = 1;
+    if (f)
+      {
+        f = 0;
+        return svn_error_createf(SVN_ERR_WC_PATH_NOT_FOUND, NULL, "foo");
+      }
+  }
+
   local_relpath = apr_pstrmemdup(scratch_pool, arg1->data, arg1->len);
   SVN_ERR(svn_wc__db_from_relpath(&local_abspath, db, wri_abspath,
                                   local_relpath, scratch_pool, scratch_pool));

Run the update that modifies a file.  The update fails and automatic cleanup
runs the workqueue and the file gets the new content. The workqueue is empty but
the working copy remains locked.

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=463&dsMessageId=2970594

To unsubscribe from this discussion, e-mail: [issues-unsubscribe@subversion.tigris.org].
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic