Comment 3 for bug 507553

Revision history for this message
John A Meinel (jameinel) wrote : Re: [Bug 507553] [NEW] Overlapping autopacks can fail with NoSuchFile on index file

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Gareth White wrote:
> Public bug reported:
>
> If two autopacks overlap at the right time, one of them will fail with a
> NoSuchFile error on one of the index files (e.g. .six, .tix). This
> affects both bzr 2.0.4dev and 2.1.0dev5 on Windows XP and OS X.
>
> It's difficult (but not impossible) to reproduce in real-world usage. If
> you run the attached shell script you should see it once or twice, but
> there are a couple of other related bugs which you might get instead.
>
> However, I can reproduce it every time by doing the following:
> 1. In_create_pack_from_packs() in bzrlib/repofmt/groupcompress_repo.py add the following just before the call to self._copy_signature_texts():
> import pdb
> pdb.set_trace()
> 2. Create a dummy repository:
> bzr init-repo testrepo
> bzr init testrepo/branch1
> bzr branch testrepo/branch1 testrepo/branch2
> 3. Commit until it breaks into the debugger (should be the 10th time):
> bzr commit -m "test" --unchanged testrepo/branch1
> 4. In a separate window, commit on the other branch:
> bzr commit -m "test" --unchanged testrepo/branch2
> 5. Both windows should now be in the debugger.
> 6. In the first window type "c" to continue. The commit should finish successfully.
> 7. In the second window type "c". The commit will fail with an error such as:
> bzr: ERROR: No such file: u'/Users/garethw/Programming/Bazaar/autopack2/testrepo/.bzr/repository/indices/4656c4d1b2cd1e347cf2b94d8d210dd9.six':
>
> If you move the breakpoint to the line before self._copy_text_texts()
> you get the error on a .tix file instead.
>

Thanks for working out the exact steps to reproduce. I'm hoping to get
some time to look into this before 2.1.0rc1 final. (I suppose if you
submitted a patch, since I'm PatchPilot I would be forced to work on
it... :)

If it happened more often in practice, I would probably increase the
priority, but since it only really happens with an automated "how many
times can I commit concurrently" test, I'm keeping the priority a bit lower.

John
=:->

 status: confirmed
 importance: low
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAktPTlMACgkQJdeBCYSNAAON2ACgte1p6bSUzdf/oixp5f+mekrS
XuoAnA28P3XTiUAuJozXFy6D66imqVW7
=tvi1
-----END PGP SIGNATURE-----