Matt Nordhoff wrote:
> I just tried this branch (well, + r4762 of bzr.dev), on my client and
> server. Pushing to the server gave a traceback:
Thanks for the heads up.
...
> line 653, in _check_new_inventories
> for record in _filter_text_keys(chk_diff, text_keys, bytes_to_info):
> File
> "/usr/local/co/bzr/bzr/bzr.dev/bzrlib/repofmt/groupcompress_repo.py",
> line 1189, in _filter_text_keys
> for record, items in interesting_nodes_iterable:
> File "/usr/local/co/bzr/bzr/bzr.dev/bzrlib/chk_map.py", line 1642, in
> process
> for record in self._read_all_roots():
> File "/usr/local/co/bzr/bzr/bzr.dev/bzrlib/chk_map.py", line 1566, in
> _read_all_roots
> self._read_nodes_from_store(new_keys):
> File "/usr/local/co/bzr/bzr/bzr.dev/bzrlib/chk_map.py", line 1500, in
> _read_nodes_from_store
> search_key_func=self._search_key_func)
> File "/usr/local/co/bzr/bzr/bzr.dev/bzrlib/chk_map.py", line 1438, in
> _deserialise
> search_key_func=search_key_func)
> File "/usr/local/co/bzr/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'll try to track down where the plain 'tuple' object came into play,
and also why I didn't catch it with the test suite. Admittedly I only
ran a subset, but I thought I ran "selftest -s bt.per_repo' which should
have covered this.
...
> for result in self.target.inventory.iter_changes(self.source.inventory):
> File "/usr/local/co/bzr/bzr/bzr.dev/bzrlib/inventory.py", line 2085,
> in iter_changes
> self.id_to_entry.iter_changes(basis.id_to_entry):
> File "/usr/local/co/bzr/bzr/bzr.dev/bzrlib/chk_map.py", line 294, in
> iter_changes
> self._ensure_root()
> File "/usr/local/co/bzr/bzr/bzr.dev/bzrlib/chk_map.py", line 140, in
> _ensure_root
> self._root_node = self._get_node(self._root_node)
> File "/usr/local/co/bzr/bzr/bzr.dev/bzrlib/chk_map.py", line 155, in
> _get_node
> search_key_func=self._search_key_func)
> File "/usr/local/co/bzr/bzr/bzr.dev/bzrlib/chk_map.py", line 1421, in
> _deserialise
> search_key_func=search_key_func)
> File "/usr/local/co/bzr/bzr/bzr.dev/bzrlib/chk_map.py", line 1008, in
> deserialise
> search_key_func=search_key_func)
> File "_chk_map_pyx.pyx", line 368, in
> _chk_map_pyx._deserialise_internal_node
> TypeError: key ('sha1:e12a0f03e145bbabf18cc7b933cce82edfc005dd',) is not
> a StaticTuple
>
> Turning off plugins did not help the latter one; I didn't try it with
> the first one.
^- This is pretty surprising, I'll certainly give it a look. Namely, it
looks like the root_key in 'basis.id_to_entry' is not a StaticTuple,
which is surprising given that the code that sets the root key has:
if type(node) is tuple:
node = StaticTuple.from_sequence(node)
Thanks for looking closely.
John
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Matt Nordhoff wrote:
> I just tried this branch (well, + r4762 of bzr.dev), on my client and
> server. Pushing to the server gave a traceback:
Thanks for the heads up.
...
> line 653, in _check_ new_inventories text_keys( chk_diff, text_keys, bytes_to_info): co/bzr/ bzr/bzr. dev/bzrlib/ repofmt/ groupcompress_ repo.py" , nodes_iterable: co/bzr/ bzr/bzr. dev/bzrlib/ chk_map. py", line 1642, in all_roots( ): co/bzr/ bzr/bzr. dev/bzrlib/ chk_map. py", line 1566, in nodes_from_ store(new_ keys): co/bzr/ bzr/bzr. dev/bzrlib/ chk_map. py", line 1500, in from_store key_func= self._search_ key_func) co/bzr/ bzr/bzr. dev/bzrlib/ chk_map. py", line 1438, in key_func= search_ key_func) co/bzr/ bzr/bzr. dev/bzrlib/ chk_map. py", line 1023, in
> for record in _filter_
> File
> "/usr/local/
> line 1189, in _filter_text_keys
> for record, items in interesting_
> File "/usr/local/
> process
> for record in self._read_
> File "/usr/local/
> _read_all_roots
> self._read_
> File "/usr/local/
> _read_nodes_
> search_
> File "/usr/local/
> _deserialise
> search_
> File "/usr/local/
> deserialise
> ' StaticTuple not %s' % (type(key),))
> AssertionError: deserialise should be called with a StaticTuple not
> <type 'tuple'>
I'll try to track down where the plain 'tuple' object came into play,
and also why I didn't catch it with the test suite. Admittedly I only
ran a subset, but I thought I ran "selftest -s bt.per_repo' which should
have covered this.
...
> for result in self.target. inventory. iter_changes( self.source. inventory) : co/bzr/ bzr/bzr. dev/bzrlib/ inventory. py", line 2085, to_entry. iter_changes( basis.id_ to_entry) : co/bzr/ bzr/bzr. dev/bzrlib/ chk_map. py", line 294, in co/bzr/ bzr/bzr. dev/bzrlib/ chk_map. py", line 140, in node(self. _root_node) co/bzr/ bzr/bzr. dev/bzrlib/ chk_map. py", line 155, in key_func= self._search_ key_func) co/bzr/ bzr/bzr. dev/bzrlib/ chk_map. py", line 1421, in key_func= search_ key_func) co/bzr/ bzr/bzr. dev/bzrlib/ chk_map. py", line 1008, in key_func= search_ key_func) pyx._deserialis e_internal_ node e12a0f03e145bba bf18cc7b933cce8 2edfc005dd' ,) is not
> File "/usr/local/
> in iter_changes
> self.id_
> File "/usr/local/
> iter_changes
> self._ensure_root()
> File "/usr/local/
> _ensure_root
> self._root_node = self._get_
> File "/usr/local/
> _get_node
> search_
> File "/usr/local/
> _deserialise
> search_
> File "/usr/local/
> deserialise
> search_
> File "_chk_map_pyx.pyx", line 368, in
> _chk_map_
> TypeError: key ('sha1:
> a StaticTuple
>
> Turning off plugins did not help the latter one; I didn't try it with
> the first one.
^- This is pretty surprising, I'll certainly give it a look. Namely, it from_sequence( node)
looks like the root_key in 'basis.id_to_entry' is not a StaticTuple,
which is surprising given that the code that sets the root key has:
if type(node) is tuple:
node = StaticTuple.
Thanks for looking closely.
John enigmail. mozdev. org/
=:->
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Cygwin)
Comment: Using GnuPG with Mozilla - http://
iEYEARECAAYFAkr gd48ACgkQJdeBCY SNAAOyVgCeIVTtO 7/TDyp9nEv9CBUX 4oq+ fMSWtHcj48HGxKT Ql
SM0An09eTMf4fXh
=oe2X
-----END PGP SIGNATURE-----