Rev 3822: Merge the 153786-1 fixes branch and resolve NEWS again. in http://bzr.arbash-meinel.com/branches/bzr/1.9-dev/pack_retry_153786

John Arbash Meinel john at arbash-meinel.com
Tue Oct 28 17:43:55 GMT 2008


At http://bzr.arbash-meinel.com/branches/bzr/1.9-dev/pack_retry_153786

------------------------------------------------------------
revno: 3822
revision-id: john at arbash-meinel.com-20081028174341-0k5jodd44m9llx7w
parent: john at arbash-meinel.com-20081027202520-50kkcq0eghc69w93
parent: john at arbash-meinel.com-20081028174135-h1ye1sag9l0jxjwh
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: pack_retry_153786
timestamp: Tue 2008-10-28 12:43:41 -0500
message:
  Merge the 153786-1 fixes branch and resolve NEWS again.
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/index.py                index.py-20070712131115-lolkarso50vjr64s-1
  bzrlib/repofmt/pack_repo.py    pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
    ------------------------------------------------------------
    revno: 3798.1.2
    revision-id: john at arbash-meinel.com-20081028174135-h1ye1sag9l0jxjwh
    parent: john at arbash-meinel.com-20081028174004-ygf3v01q2iivzrbl
    parent: pqm at pqm.ubuntu.com-20081027195553-876pyjww9zmjqj87
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: pack_retry_153786-1
    timestamp: Tue 2008-10-28 12:41:35 -0500
    message:
      Merge in bzr.dev 3801, resolve NEWS
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/_walkdirs_win32.pyx     _walkdirs_win32.pyx-20080716220454-kweh3tgxez5dvw2l-2
      bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
      bzrlib/btree_index.py          index.py-20080624222253-p0x5f92uyh5hw734-7
      bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
      bzrlib/chunk_writer.py         chunk_writer.py-20080630234519-6ggn4id17nipovny-1
      bzrlib/help_topics/en/hooks.txt hooks.txt-20070830033044-xxu2rced13f72dka-1
      bzrlib/index.py                index.py-20070712131115-lolkarso50vjr64s-1
      bzrlib/plugin.py               plugin.py-20050622060424-829b654519533d69
      bzrlib/plugins/launchpad/account.py account.py-20071011033320-50y6vfftywf4yllw-1
      bzrlib/plugins/launchpad/test_account.py test_account.py-20071011033320-50y6vfftywf4yllw-2
      bzrlib/python-compat.h         pythoncompat.h-20080924041409-9kvi0fgtuuqp743j-1
      bzrlib/remote.py               remote.py-20060720103555-yeeg2x51vn0rbtdp-1
      bzrlib/repofmt/pack_repo.py    pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
      bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
      bzrlib/tests/__init__.py       selftest.py-20050531073622-8d0e3c8845c97a64
      bzrlib/tests/blackbox/test_missing.py test_missing.py-20051211212735-a2cf4c1840bb84c4
      bzrlib/tests/branch_implementations/test_stacking.py test_stacking.py-20080214020755-msjlkb7urobwly0f-1
      bzrlib/tests/test_btree_index.py test_index.py-20080624222253-p0x5f92uyh5hw734-13
      bzrlib/tests/test_chunk_writer.py test_chunk_writer.py-20080630234519-6ggn4id17nipovny-2
      bzrlib/tests/test_index.py     test_index.py-20070712131115-lolkarso50vjr64s-2
      bzrlib/tests/test_repository.py test_repository.py-20060131075918-65c555b881612f4d
      bzrlib/transport/__init__.py   transport.py-20050711165921-4978aa7ce1285ad5
      bzrlib/win32utils.py           win32console.py-20051021033308-123c6c929d04973d
      doc/en/user-guide/branching_a_project.txt branching_a_project.-20071122141511-0knao2lklsdsvb1q-2
      doc/en/user-guide/core_concepts.txt core_concepts.txt-20071114035000-q36a9h57ps06uvnl-2
      doc/en/user-guide/using_checkouts.txt using_checkouts.txt-20071123055134-k5x4ekduci2lbn36-4
    ------------------------------------------------------------
    revno: 3798.1.1
    revision-id: john at arbash-meinel.com-20081028174004-ygf3v01q2iivzrbl
    parent: john at arbash-meinel.com-20081023210643-6pxsgdybl89n0tz9
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: pack_retry_153786-1
    timestamp: Tue 2008-10-28 12:40:04 -0500
    message:
      Review comments from Martin.
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      bzrlib/index.py                index.py-20070712131115-lolkarso50vjr64s-1
      bzrlib/repofmt/pack_repo.py    pack_repo.py-20070813041115-gjv5ma7ktfqwsjgn-1
-------------- next part --------------
=== modified file 'NEWS'
--- a/NEWS	2008-10-27 20:05:42 +0000
+++ b/NEWS	2008-10-28 17:43:41 +0000
@@ -60,13 +60,19 @@
       could only happen if ``bzr reconcile`` decided that the parent
       ordering was incorrect in the file graph.  (John Arbash Meinel)
 
-    * Some compatibility fixes for building the extensions with MSVC and
-      for python2.4. (John Arbash Meinel, #277484)
-
     * Pack repositories are now able to reload the pack listing and retry
       the current operation if another action causes the data to be
       repacked.  (John Arbash Meinel, #153786)
 
+    * Some compatibility fixes for building the extensions with MSVC and
+      for python2.4. (John Arbash Meinel, #277484)
+
+    * The index logic is now able to reload the list of pack files if and
+      index ends up disappearing. We still don't reload if the pack data
+      itself goes missing after checking the index. This bug appears as a
+      transient failure (file not found) when another process is writing
+      to the repository.  (John Arbash Meinel, #153786)
+
   DOCUMENTATION:
 
   API CHANGES:

=== modified file 'bzrlib/index.py'
--- a/bzrlib/index.py	2008-10-25 00:38:53 +0000
+++ b/bzrlib/index.py	2008-10-28 17:43:41 +0000
@@ -1280,8 +1280,12 @@
         if self._reload_func is None:
             raise
         exc_type, exc_value, exc_traceback = sys.exc_info()
+        trace.mutter('Trying to reload after getting exception: %s',
+                     exc_value)
         if not self._reload_func():
             # We tried to reload, but nothing changed, so we fail anyway
+            trace.mutter('_reload_func indicated nothing has changed.'
+                         ' Raising original exception.')
             raise exc_type, exc_value, exc_traceback
 
     def validate(self):

=== modified file 'bzrlib/repofmt/pack_repo.py'
--- a/bzrlib/repofmt/pack_repo.py	2008-10-27 20:25:20 +0000
+++ b/bzrlib/repofmt/pack_repo.py	2008-10-28 17:43:41 +0000
@@ -458,8 +458,8 @@
         """Create an AggregateIndex.
 
         :param reload_func: A function to call if we find we are missing an
-            index. Should have the form reload_func() => True/False to indicate
-            if reloading actually changed anything.
+            index. Should have the form reload_func() => True if the list of
+            active pack files has changed.
         """
         self._reload_func = reload_func
         self.index_to_pack = {}



More information about the bazaar-commits mailing list