Rev 4411: (jam) If _resume_write_group aborts, in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Fri Jun 5 04:56:11 BST 2009


At file:///home/pqm/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 4411
revision-id: pqm at pqm.ubuntu.com-20090605035605-xfvzlg2to1qkop1c
parent: pqm at pqm.ubuntu.com-20090605024638-fe5tn388osc38jvw
parent: john at arbash-meinel.com-20090601214955-i9jzsf9r1xyqaiwc
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Fri 2009-06-05 04:56:05 +0100
message:
  (jam) If _resume_write_group aborts,
  	abort the write group that was just started.
modified:
  bzrlib/repofmt/pack_repo.py    pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
    ------------------------------------------------------------
    revno: 4395.1.2
    revision-id: john at arbash-meinel.com-20090601214955-i9jzsf9r1xyqaiwc
    parent: john at arbash-meinel.com-20090601214625-aphmbq80ix287sbn
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: 1.16-abort-resume-aborts-start
    timestamp: Mon 2009-06-01 16:49:55 -0500
    message:
      Fixed the TODO
    modified:
      bzrlib/tests/per_repository/test_write_group.py test_write_group.py-20070716105516-89n34xtogq5frn0m-1
    ------------------------------------------------------------
    revno: 4395.1.1
    revision-id: john at arbash-meinel.com-20090601214625-aphmbq80ix287sbn
    parent: pqm at pqm.ubuntu.com-20090601172255-dncn7ceeguhsw2k2
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: 1.16-abort-resume-aborts-start
    timestamp: Mon 2009-06-01 16:46:25 -0500
    message:
      If _resume_write_group aborts, make sure to clean up pending packs.
      
      As written, _resume first calls _start, and then tries to start resuming.
      If resuming fails, it aborts the resume, but leaves the pack files open.
      However, the Repository doesn't catch the exception, so you can't call
      repo.abort... to close the open handles.
    modified:
      bzrlib/repofmt/pack_repo.py    pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
      bzrlib/tests/per_repository/test_write_group.py test_write_group.py-20070716105516-89n34xtogq5frn0m-1
=== modified file 'bzrlib/repofmt/pack_repo.py'
--- a/bzrlib/repofmt/pack_repo.py	2009-06-03 21:28:52 +0000
+++ b/bzrlib/repofmt/pack_repo.py	2009-06-05 03:56:05 +0000
@@ -2289,7 +2289,11 @@
 
     def _resume_write_group(self, tokens):
         self._start_write_group()
-        self._pack_collection._resume_write_group(tokens)
+        try:
+            self._pack_collection._resume_write_group(tokens)
+        except errors.UnresumableWriteGroup:
+            self._abort_write_group()
+            raise
         for pack in self._pack_collection._resumed_packs:
             self.revisions._index.scan_unvalidated_index(pack.revision_index)
 




More information about the bazaar-commits mailing list