StaticTuple failure while pulling from bzr+ssh

Bug #471193 reported by John A Meinel
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Bazaar
Fix Released
Critical
John A Meinel

Bug Description

I've tracked down a critical failure in the 2.1.0b2 branch. I'm doing "bzr pull" and getting:
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\repository.py", line 1557, in commit_write_group
    result = self._commit_write_group()
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\repofmt\pack_repo.py", line 2269, in _commit_write_
group
    hint = self._pack_collection._commit_write_group()
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\repofmt\pack_repo.py", line 2097, in _commit_write_
group
    problems = self._check_new_inventories()
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\repofmt\groupcompress_repo.py", line 653, in _check
_new_inventories
    for record in _filter_text_keys(chk_diff, text_keys, bytes_to_info):
...
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\chk_map.py", line 1023, in deserialise
    ' StaticTuple not %s' % (type(key),))
AssertionError: deserialise should be called with a StaticTuple not <type 'tuple'>

I believe I've tracked down the cause, I just have to sort out a fix.

1) The smart server sends the values in something like bencoded form
2) These get unpacked into plain tuples, and then get put into a BTreeBuilder
3) Those get stored as _nodes[tuple] => stuff
4) At commit-write-group time, we then call _check_new_inventories.
This eventually requests the newly added nodes back from the store, and uses:
        stream = self._store.get_record_stream(keys, 'unordered', True)
        for record in stream:

Note that 'keys' at this point *is* a StaticTuple, however:
  record.key
Is set by the BTreeBuilder, and is a plain 'tuple' instance.

I'll try to sort out where I want to fix this, but in the short term, I'm not going to release a 2.1.0b2 with the potential for 'bzr pull' to fail.

Related branches

John A Meinel (jameinel)
Changed in bzr:
status: In Progress → Fix Committed
Vincent Ladeuil (vila)
Changed in bzr:
status: Fix Committed → Fix Released
Revision history for this message
Guilherme Salgado (salgado) wrote :

I've just experienced this using bzr-2.1.0+b1+4781+129~8.10 (from the nightly ppa). Is it known to have that problem as well? Anything I can do to workaround it while a newer version doesn't show up in the ppa?

http://paste.ubuntu.com/322333/ has the error and some info about my repository. The crash file is attached.

Revision history for this message
Guilherme Salgado (salgado) wrote :

Although in my case it happened while codehosting was down for maintenance (http://blog.launchpad.net/?p=1169)

Revision history for this message
John A Meinel (jameinel) wrote : Re: [Bug 471193] Re: StaticTuple failure while pulling from bzr+ssh

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

Guilherme Salgado wrote:
> Although in my case it happened while codehosting was down for
> maintenance (http://blog.launchpad.net/?p=1169)
>

Known problem, has been fixed, you just need a newer package (which
nobody seems to be building...)

John
=:->

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

iEYEARECAAYFAksFYzIACgkQJdeBCYSNAANXiACgoXlnDbDly5w/7dO9rqDig/Ax
oc0AoJf7pQnHuJzni2taIfCcmxpF0IMQ
=k6d1
-----END PGP SIGNATURE-----

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.