StaticTuple failure while pulling from bzr+ssh
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\
result = self._commit_
File "C:\Users\
group
hint = self._pack_
File "C:\Users\
group
problems = self._check_
File "C:\Users\
_new_inventories
for record in _filter_
...
File "C:\Users\
' 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_
This eventually requests the newly added nodes back from the store, and uses:
stream = self._store.
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
- Vincent Ladeuil: Approve
-
Diff: 565 lines10 files modifiedNEWS (+12/-3)
bzrlib/chk_map.py (+3/-3)
bzrlib/help_topics/en/debug-flags.txt (+1/-0)
bzrlib/plugins/launchpad/__init__.py (+12/-23)
bzrlib/plugins/launchpad/lp_registration.py (+25/-4)
bzrlib/plugins/launchpad/test_lp_directory.py (+144/-1)
bzrlib/static_tuple.py (+17/-0)
bzrlib/tests/test__static_tuple.py (+26/-0)
bzrlib/tests/test_http.py (+55/-1)
bzrlib/transport/http/_urllib2_wrappers.py (+19/-7)
Changed in bzr: | |
status: | In Progress → Fix Committed |
Changed in bzr: | |
status: | Fix Committed → Fix Released |
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.