** 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

Reply via email to