I just reproduced this locally, but got a very different traceback (and more the one I would expect / what I had hoped we had fixed).
Using lp:bzr/2.0 I inserted a 'import pdb; pdb.set_trace()' in _do_autopack just after it decides it needs to do one. I then ran 'bzr commit' until it stopped, once that happened I started another commit in the other window, let it stop at the same place, continued on the first, and the second failed with:
...
File "C:\Users\jameinel\dev\bzr\swork\bzrlib\repofmt\pack_repo.py", line 1472, in autopack
return self._do_autopack()
File "C:\Users\jameinel\dev\bzr\swork\bzrlib\repofmt\pack_repo.py", line 1513, in _do_autopack
reload_func=self._restart_autopack)
File "C:\Users\jameinel\dev\bzr\swork\bzrlib\repofmt\groupcompress_repo.py", line 691, in _execute_pack_operations
result = packer.pack()
File "C:\Users\jameinel\dev\bzr\swork\bzrlib\repofmt\pack_repo.py", line 760, in pack
return self._create_pack_from_packs()
File "C:\Users\jameinel\dev\bzr\swork\bzrlib\repofmt\groupcompress_repo.py", line 473, in _create_pack_from_packs
self._copy_revision_texts()
File "C:\Users\jameinel\dev\bzr\swork\bzrlib\repofmt\groupcompress_repo.py", line 411, in _copy_revision_texts
'revisions', self._get_progress_stream, 1)
File "C:\Users\jameinel\dev\bzr\swork\bzrlib\repofmt\groupcompress_repo.py", line 400, in _copy_stream
reuse_blocks=False):
File "C:\Users\jameinel\dev\bzr\swork\bzrlib\groupcompress.py", line 1663, in _insert_record_stream
for record in stream:
File "C:\Users\jameinel\dev\bzr\swork\bzrlib\repofmt\groupcompress_repo.py", line 207, in pb_stream
for idx, record in enumerate(substream):
File "C:\Users\jameinel\dev\bzr\swork\bzrlib\groupcompress.py", line 1423, in get_record_stream
orig_keys, ordering, include_delta_closure):
File "C:\Users\jameinel\dev\bzr\swork\bzrlib\groupcompress.py", line 1582, in _get_remaining_record_stream
for factory in batcher.yield_factories(full_flush=True):
File "C:\Users\jameinel\dev\bzr\swork\bzrlib\groupcompress.py", line 1146, in yield_factories
block_read_memo, block = blocks.next()
File "C:\Users\jameinel\dev\bzr\swork\bzrlib\groupcompress.py", line 1379, in _get_blocks
zdata = raw_records.next()
File "C:\Users\jameinel\dev\bzr\swork\bzrlib\knit.py", line 3364, in get_raw_records
reader = pack.make_readv_reader(transport, path, offsets)
File "C:\Users\jameinel\dev\bzr\swork\bzrlib\pack.py", line 221, in make_readv_reader
transport.readv(filename, readv_blocks)))
File "C:\Users\jameinel\dev\bzr\swork\bzrlib\transport\__init__.py", line 656, in readv
return self._readv(relpath, offsets)
File "C:\Users\jameinel\dev\bzr\swork\bzrlib\transport\__init__.py", line 668, in _readv
fp = self.get(relpath)
File "C:\Users\jameinel\dev\bzr\swork\bzrlib\transport\local.py", line 167, in get
self._translate_error(e, path)
File "C:\Users\jameinel\dev\bzr\swork\bzrlib\transport\__init__.py", line 306, in _translate_error
raise errors.NoSuchFile(path, extra=e)
NoSuchFile: No such file: u'C:/Users/jameinel/dev/,tmp/remote-mem-test/.bzr/repository/packs/54548bdc2dfdbe29ff0a46e298e4fd38.pack': [Errno 2] No such file or directory: u'C:/Users/jameinel/dev/,tmp/remote-mem-test/.bzr/repository/packs/54548bdc2dfdbe29ff0a46e298e4fd38.pack'
Looking at it, I see the 'reload_func=self_restart_autopack' line, so it should have tried to restart, but it certainly doesn't seem to have triggered. Will investigate further.
I just reproduced this locally, but got a very different traceback (and more the one I would expect / what I had hoped we had fixed).
Using lp:bzr/2.0 I inserted a 'import pdb; pdb.set_trace()' in _do_autopack just after it decides it needs to do one. I then ran 'bzr commit' until it stopped, once that happened I started another commit in the other window, let it stop at the same place, continued on the first, and the second failed with: jameinel\ dev\bzr\ swork\bzrlib\ repofmt\ pack_repo. py", line 1472, in autopack jameinel\ dev\bzr\ swork\bzrlib\ repofmt\ pack_repo. py", line 1513, in _do_autopack func=self. _restart_ autopack) jameinel\ dev\bzr\ swork\bzrlib\ repofmt\ groupcompress_ repo.py" , line 691, in _execute_ pack_operations jameinel\ dev\bzr\ swork\bzrlib\ repofmt\ pack_repo. py", line 760, in pack pack_from_ packs() jameinel\ dev\bzr\ swork\bzrlib\ repofmt\ groupcompress_ repo.py" , line 473, in _create_ pack_from_ packs _copy_revision_ texts() jameinel\ dev\bzr\ swork\bzrlib\ repofmt\ groupcompress_ repo.py" , line 411, in _copy_revision_ texts progress_ stream, 1) jameinel\ dev\bzr\ swork\bzrlib\ repofmt\ groupcompress_ repo.py" , line 400, in _copy_stream blocks= False): jameinel\ dev\bzr\ swork\bzrlib\ groupcompress. py", line 1663, in _insert_ record_ stream jameinel\ dev\bzr\ swork\bzrlib\ repofmt\ groupcompress_ repo.py" , line 207, in pb_stream substream) : jameinel\ dev\bzr\ swork\bzrlib\ groupcompress. py", line 1423, in get_record_stream delta_closure) : jameinel\ dev\bzr\ swork\bzrlib\ groupcompress. py", line 1582, in _get_remaining_ record_ stream yield_factories (full_flush= True): jameinel\ dev\bzr\ swork\bzrlib\ groupcompress. py", line 1146, in yield_factories read_memo, block = blocks.next() jameinel\ dev\bzr\ swork\bzrlib\ groupcompress. py", line 1379, in _get_blocks jameinel\ dev\bzr\ swork\bzrlib\ knit.py" , line 3364, in get_raw_records readv_reader( transport, path, offsets) jameinel\ dev\bzr\ swork\bzrlib\ pack.py" , line 221, in make_readv_reader readv(filename, readv_blocks))) jameinel\ dev\bzr\ swork\bzrlib\ transport\ __init_ _.py", line 656, in readv relpath, offsets) jameinel\ dev\bzr\ swork\bzrlib\ transport\ __init_ _.py", line 668, in _readv jameinel\ dev\bzr\ swork\bzrlib\ transport\ local.py" , line 167, in get _translate_ error(e, path) jameinel\ dev\bzr\ swork\bzrlib\ transport\ __init_ _.py", line 306, in _translate_error NoSuchFile( path, extra=e) jameinel/ dev/,tmp/ remote- mem-test/ .bzr/repository /packs/ 54548bdc2dfdbe2 9ff0a46e298e4fd 38.pack' : [Errno 2] No such file or directory: u'C:/Users/ jameinel/ dev/,tmp/ remote- mem-test/ .bzr/repository /packs/ 54548bdc2dfdbe2 9ff0a46e298e4fd 38.pack'
...
File "C:\Users\
return self._do_autopack()
File "C:\Users\
reload_
File "C:\Users\
result = packer.pack()
File "C:\Users\
return self._create_
File "C:\Users\
self.
File "C:\Users\
'revisions', self._get_
File "C:\Users\
reuse_
File "C:\Users\
for record in stream:
File "C:\Users\
for idx, record in enumerate(
File "C:\Users\
orig_keys, ordering, include_
File "C:\Users\
for factory in batcher.
File "C:\Users\
block_
File "C:\Users\
zdata = raw_records.next()
File "C:\Users\
reader = pack.make_
File "C:\Users\
transport.
File "C:\Users\
return self._readv(
File "C:\Users\
fp = self.get(relpath)
File "C:\Users\
self.
File "C:\Users\
raise errors.
NoSuchFile: No such file: u'C:/Users/
Looking at it, I see the 'reload_ func=self_ restart_ autopack' line, so it should have tried to restart, but it certainly doesn't seem to have triggered. Will investigate further.