** Description changed: When bzr 1.13.1 and earlier push a stacked branch they do not take care to push all the parent inventories for the transferred revisions. This means that a smart server serving that branch often cannot calculate inventory deltas for the branch (because smart server does not/cannot open fallback repositories). Prior to 1.13 the server did not have a verb to stream revisions out of a repository, so that's why this bug has appeared now. + + bzr.dev and 1.14rc2 have been fixed to push up complete branches always, + and bzr.dev has a fix for the server to make unfixed clients that use + the Repository.insert_stream* HPSS verbs send the missing records. (See + also bug 368418 about the server fix in bzr.dev) + + So upgrading clients to 1.14rc2 or newer fixes this bug. Alternatively + upgrading the server to bzr.dev r4307 and using 1.13 or newer clients to + push via HPSS fixes this too. + + Workarounds + ---------------- + + There are multiple workarounds for dealing with an affected branch. In + rough order of preference: + + - Use the 'foo.py' script Robert has attached to this bug to repair the affected branch (by fetching the missing parts from the stacked-on repository) + - Delete the affected branch and repush it with a fixed client (1.14rc2 or newer) + - Use non-smart URLs to access an affected branch, e.g. sftp:// or nosmart+bzr+ssh://. This works because the client can access the stacked-on repository, and the missing data is present there. + + + Symptom + ------- + + When pulling affected branches, you get a traceback like this: This manifests as exceptions from the server involving 'AbsentContentFactory'. e.g. The exception below occurred while pulling lp:~rivenx/rivenx/domes using bzr.dev r4237. bzr: ERROR: bzrlib.errors.ErrorFromSmartServer: Error received from smart server: ('error', "'AbsentContentFactory' object has no attribute 'get_bytes_as'") Traceback (most recent call last): File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 727, in exception_to_return_code return the_callable(*args, **kwargs) File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 922, in run_bzr ret = run(*run_argv) File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 559, in run_argv_aliases return self.run(**all_cmd_args) File "/Library/Python/2.6/site-packages/bzrlib/builtins.py", line 1103, in run source_branch=br_from) File "/Library/Python/2.6/site-packages/bzrlib/bzrdir.py", line 1139, in sprout result_repo.fetch(source_repository, revision_id=revision_id) File "/Library/Python/2.6/site-packages/bzrlib/repository.py", line 1465, in fetch find_ghosts=find_ghosts, fetch_spec=fetch_spec) File "/Library/Python/2.6/site-packages/bzrlib/decorators.py", line 192, in write_locked result = unbound(self, *args, **kwargs) File "/Library/Python/2.6/site-packages/bzrlib/repository.py", line 2991, in fetch pb=pb, find_ghosts=find_ghosts) File "/Library/Python/2.6/site-packages/bzrlib/fetch.py", line 84, in __init__ self.__fetch() File "/Library/Python/2.6/site-packages/bzrlib/fetch.py", line 110, in __fetch self._fetch_everything_for_search(search) File "/Library/Python/2.6/site-packages/bzrlib/fetch.py", line 138, in _fetch_everything_for_search stream, from_format, []) File "/Library/Python/2.6/site-packages/bzrlib/repository.py", line 3791, in insert_stream return self._locked_insert_stream(stream, src_format) File "/Library/Python/2.6/site-packages/bzrlib/repository.py", line 3819, in _locked_insert_stream for substream_type, substream in stream: File "/Library/Python/2.6/site-packages/bzrlib/remote.py", line 1709, in missing_parents_chain for kind, substream in stream: File "/Library/Python/2.6/site-packages/bzrlib/smart/repository.py", line 447, in record_stream for bytes in byte_stream: File "/Library/Python/2.6/site-packages/bzrlib/smart/message.py", line 336, in read_streamed_body _translate_error(self._body_error_args) File "/Library/Python/2.6/site-packages/bzrlib/smart/message.py", line 355, in _translate_error raise errors.ErrorFromSmartServer(error_tuple) ErrorFromSmartServer: Error received from smart server: ('error', "'AbsentContentFactory' object has no attribute 'get_bytes_as'") bzr 1.14dev on python 2.6.1 (darwin) arguments: ['/usr/local/bin/bzr', 'branch', 'lp:~rivenx/rivenx/domes'] encoding: 'UTF-8', fsenc: 'utf-8', lang: 'en_US.UTF-8' plugins: bzrtools /Library/Python/2.6/site-packages/bzrlib/plugins/bzrtools [1.13] keychain_credential_store /Volumes/Crossroads/bahamut/.bazaar/plugins/keychain_credential_store [0.1dev] launchpad /Library/Python/2.6/site-packages/bzrlib/plugins/launchpad [unknown] netrc_credential_store /Library/Python/2.6/site-packages/bzrlib/plugins/netrc_credential_store [unknown] svn /Volumes/Crossroads/bahamut/.bazaar/plugins/svn [0.5.4dev] *** Bazaar has encountered an internal error. Please report a bug at https://bugs.launchpad.net/bzr/+filebug including this traceback, and a description of what you were doing when the error occurred. - - - bzr.dev and 1.14rc2 have been fixed to push up complete branches always, and bzr.dev has a fix for the server to make unfixed clients send the missing records. - - So upgrading clients to 1.14rc2 or newer fixes this bug. Alternatively - upgrading the server to bzr.dev r4307 and using 1.13 or newer clients to - push via HPSS fixes this too. - - Workarounds - ---------------- - - There are multiple workarounds for dealing with an affected branch. In - rough order of preference: - - - Use the 'foo.py' script Robert has attached to this bug to repair the affected branch (by fetching the missing parts from the stacked-on repository) - - Delete the affected branch and repush it with a fixed client (1.14rc2 or newer) - - Use non-smart URLs to access an affected branch, e.g. sftp:// or nosmart+bzr+ssh://. This works because the client can access the stacked-on repository, and the missing data is present there.
** Description changed: - When bzr 1.13.1 and earlier push a stacked branch they do not take care - to push all the parent inventories for the transferred revisions. This - means that a smart server serving that branch often cannot calculate - inventory deltas for the branch (because smart server does not/cannot - open fallback repositories). Prior to 1.13 the server did not have a - verb to stream revisions out of a repository, so that's why this bug has - appeared now. + When bzr < 1.13.2 (and bzr 1.14rc1) push a stacked branch they do not + take care to push all the parent inventories for the transferred + revisions. This means that a smart server serving that branch often + cannot calculate inventory deltas for the branch (because smart server + does not/cannot open fallback repositories). Prior to 1.13 the server + did not have a verb to stream revisions out of a repository, so that's + why this bug has appeared now. bzr.dev and 1.14rc2 have been fixed to push up complete branches always, and bzr.dev has a fix for the server to make unfixed clients that use the Repository.insert_stream* HPSS verbs send the missing records. (See also bug 368418 about the server fix in bzr.dev) So upgrading clients to 1.14rc2 or newer fixes this bug. Alternatively upgrading the server to bzr.dev r4307 and using 1.13 or newer clients to push via HPSS fixes this too. Workarounds ---------------- There are multiple workarounds for dealing with an affected branch. In rough order of preference: - Use the 'foo.py' script Robert has attached to this bug to repair the affected branch (by fetching the missing parts from the stacked-on repository) - Delete the affected branch and repush it with a fixed client (1.14rc2 or newer) - Use non-smart URLs to access an affected branch, e.g. sftp:// or nosmart+bzr+ssh://. This works because the client can access the stacked-on repository, and the missing data is present there. Symptom ------- When pulling affected branches, you get a traceback like this: This manifests as exceptions from the server involving 'AbsentContentFactory'. e.g. The exception below occurred while pulling lp:~rivenx/rivenx/domes using bzr.dev r4237. bzr: ERROR: bzrlib.errors.ErrorFromSmartServer: Error received from smart server: ('error', "'AbsentContentFactory' object has no attribute 'get_bytes_as'") Traceback (most recent call last): File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 727, in exception_to_return_code return the_callable(*args, **kwargs) File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 922, in run_bzr ret = run(*run_argv) File "/Library/Python/2.6/site-packages/bzrlib/commands.py", line 559, in run_argv_aliases return self.run(**all_cmd_args) File "/Library/Python/2.6/site-packages/bzrlib/builtins.py", line 1103, in run source_branch=br_from) File "/Library/Python/2.6/site-packages/bzrlib/bzrdir.py", line 1139, in sprout result_repo.fetch(source_repository, revision_id=revision_id) File "/Library/Python/2.6/site-packages/bzrlib/repository.py", line 1465, in fetch find_ghosts=find_ghosts, fetch_spec=fetch_spec) File "/Library/Python/2.6/site-packages/bzrlib/decorators.py", line 192, in write_locked result = unbound(self, *args, **kwargs) File "/Library/Python/2.6/site-packages/bzrlib/repository.py", line 2991, in fetch pb=pb, find_ghosts=find_ghosts) File "/Library/Python/2.6/site-packages/bzrlib/fetch.py", line 84, in __init__ self.__fetch() File "/Library/Python/2.6/site-packages/bzrlib/fetch.py", line 110, in __fetch self._fetch_everything_for_search(search) File "/Library/Python/2.6/site-packages/bzrlib/fetch.py", line 138, in _fetch_everything_for_search stream, from_format, []) File "/Library/Python/2.6/site-packages/bzrlib/repository.py", line 3791, in insert_stream return self._locked_insert_stream(stream, src_format) File "/Library/Python/2.6/site-packages/bzrlib/repository.py", line 3819, in _locked_insert_stream for substream_type, substream in stream: File "/Library/Python/2.6/site-packages/bzrlib/remote.py", line 1709, in missing_parents_chain for kind, substream in stream: File "/Library/Python/2.6/site-packages/bzrlib/smart/repository.py", line 447, in record_stream for bytes in byte_stream: File "/Library/Python/2.6/site-packages/bzrlib/smart/message.py", line 336, in read_streamed_body _translate_error(self._body_error_args) File "/Library/Python/2.6/site-packages/bzrlib/smart/message.py", line 355, in _translate_error raise errors.ErrorFromSmartServer(error_tuple) ErrorFromSmartServer: Error received from smart server: ('error', "'AbsentContentFactory' object has no attribute 'get_bytes_as'") bzr 1.14dev on python 2.6.1 (darwin) arguments: ['/usr/local/bin/bzr', 'branch', 'lp:~rivenx/rivenx/domes'] encoding: 'UTF-8', fsenc: 'utf-8', lang: 'en_US.UTF-8' plugins: bzrtools /Library/Python/2.6/site-packages/bzrlib/plugins/bzrtools [1.13] keychain_credential_store /Volumes/Crossroads/bahamut/.bazaar/plugins/keychain_credential_store [0.1dev] launchpad /Library/Python/2.6/site-packages/bzrlib/plugins/launchpad [unknown] netrc_credential_store /Library/Python/2.6/site-packages/bzrlib/plugins/netrc_credential_store [unknown] svn /Volumes/Crossroads/bahamut/.bazaar/plugins/svn [0.5.4dev] *** Bazaar has encountered an internal error. Please report a bug at https://bugs.launchpad.net/bzr/+filebug including this traceback, and a description of what you were doing when the error occurred. -- ErrorFromSmartServer - AbsentContentFactory object has no attribute 'get_bytes_as' exception while pulling from Launchpad https://bugs.launchpad.net/bugs/354036 You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs