bug: 354036 title: ErrorFromSmartServer - AbsentContentFactory (unfixable by users) error when pulling a branch from the mirrored area date-reported: Thu, 02 Apr 2009 18:56:04 -0000 date-updated: Fri, 06 Aug 2010 22:49:19 -0000 reporter: Jean-Francois Roy (jeanfrancois.roy) duplicate-of: duplicates: 365277 366316 389087 395908 408251 421860 512621 attachments: https://bugs.launchpad.net/bugs/354036/+attachment/577265/+files/fix-branch.py text/x-python patches: tags: hpss lp-code lp-needs subscribers: Jean-Francois Roy (jeanfrancois.roy) Matt Nordhoff (mnordhoff) Tim Penhey (thumper) Stewart Smith (stewart) Mark Lee (malept) Māris Fogels (mars) Nicola Larosa (teknico) Rick McBride (rmcbride) task: bzr status: Fix Released date-created: Thu, 02 Apr 2009 18:56:04 -0000 date-left-new: Fri, 03 Apr 2009 01:00:48 -0000 date-confirmed: Wed, 22 Apr 2009 00:16:01 -0000 date-triaged: Wed, 22 Apr 2009 00:16:01 -0000 date-assigned: Fri, 03 Apr 2009 01:00:48 -0000 date-inprogress: Wed, 22 Apr 2009 00:16:01 -0000 date-closed: Wed, 22 Apr 2009 00:16:01 -0000 date-fix-committed: Wed, 22 Apr 2009 00:16:01 -0000 date-fix-released: Wed, 22 Apr 2009 00:16:01 -0000 reporter: Jean-Francois Roy (jeanfrancois.roy) importance: Critical assignee: Andrew Bennetts (spiv) milestone: 1.14rc2 task: bzr/1.13 status: Fix Released date-created: Wed, 22 Apr 2009 12:54:41 -0000 date-left-new: Wed, 22 Apr 2009 12:58:29 -0000 date-confirmed: Wed, 22 Apr 2009 12:58:29 -0000 date-triaged: Mon, 27 Apr 2009 21:36:22 -0000 date-assigned: Mon, 27 Apr 2009 21:36:22 -0000 date-inprogress: Mon, 27 Apr 2009 21:36:22 -0000 date-closed: Wed, 29 Apr 2009 02:17:31 -0000 date-fix-committed: Mon, 27 Apr 2009 21:36:22 -0000 date-fix-released: Wed, 29 Apr 2009 02:17:31 -0000 reporter: Martin Pool (mbp) importance: High assignee: Bob Tanner (tanner) milestone: 1.13.2 task: launchpad status: Fix Released date-created: Thu, 30 Apr 2009 04:10:26 -0000 date-left-new: Fri, 08 May 2009 22:58:18 -0000 date-confirmed: Fri, 08 May 2009 22:58:18 -0000 date-triaged: Fri, 08 May 2009 22:58:18 -0000 date-inprogress: Fri, 08 May 2009 22:58:18 -0000 date-closed: Wed, 17 Feb 2010 00:57:12 -0000 date-fix-committed: Fri, 08 May 2009 22:58:18 -0000 date-fix-released: Wed, 17 Feb 2010 00:57:12 -0000 reporter: Robert Collins (lifeless) importance: Undecided assignee: milestone: task: bzr (Ubuntu) status: Fix Released date-created: Tue, 14 Apr 2009 23:18:48 -0000 date-left-new: Tue, 14 Apr 2009 23:20:11 -0000 date-confirmed: Tue, 14 Apr 2009 23:20:11 -0000 date-triaged: Fri, 06 Aug 2010 22:49:16 -0000 date-inprogress: Fri, 06 Aug 2010 22:49:16 -0000 date-closed: Fri, 06 Aug 2010 22:49:16 -0000 date-fix-committed: Fri, 06 Aug 2010 22:49:16 -0000 date-fix-released: Fri, 06 Aug 2010 22:49:16 -0000 reporter: Martin Pool (mbp) importance: Undecided component: universe assignee: milestone: Content-Type: multipart/mixed; boundary="===============8267723365425008105==" MIME-Version: 1.0 --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Workarounds ---------------- If you can write to the branch: - Use the fixer script attached to this bug to repair the affected branch = (by fetching the missing parts from the stacked-on repository). Run it as '= fix-branch.py bzr+ssh://bazaar.launchpad.net/~user/project/branch'. You mus= t have write access to the branch to do this. - Alternatively just delete the affected branch and repush it with a fixed= client (1.14rc2 or newer) If you cannot write to the branch: - 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, but will be slower as it disables streaming fetch. Details ------- When bzr introduced stacking the data pushed to a stacking branch was too minimal. This lack was discovered when streaming fetch from stacked branches was enabled. The server needs to be able to generate a delta of the data in its graph to decide what to send the client, and the ACF record sent to the client is an indicator that it was failing to do this correctly. Resolution ---------- Use bzr.dev newer than r4307 (or bzr 1.15 or newer) on the server and bzr 1.13 or newer as clients with bzr+ssh or bzr+http urls. If the server cannot run 1.15, use bzr 1.13.2 or 1.14rc2 or newer on the client. Do not use older bzr versions. bzr.dev and 1.14rc2 have been fixed on the client side to always include enough data, and bzr.dev (and thus bzr 1.15) include a fix for the server to make bzr 1.13 clients that use the Repository.insert_stream* HPSS verbs send the missing records. (See also bug 368418 about the server fix in bzr.dev) Symptom ------- When pulling affected branches, you get a traceback like this: 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/decorators.py", line 192, = in write_locked result =3D unbound(self, *args, **kwargs) File "/Library/Python/2.6/site-packages/bzrlib/repository.py", line 2991,= in fetch pb=3Dpb, find_ghosts=3Dfind_ghosts) File "/Library/Python/2.6/site-packages/bzrlib/fetch.py", line 84, in __i= nit__ 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 _f= etch_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 33= 6, in read_streamed_body _translate_error(self._body_error_args) File "/Library/Python/2.6/site-packages/bzrlib/smart/message.py", line 35= 5, in _translate_error raise errors.ErrorFromSmartServer(error_tuple) ErrorFromSmartServer: Error received from smart server: ('error', "'AbsentC= ontentFactory' object has no attribute 'get_bytes_as'") --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Andrew Bennetts (spiv) Date: Fri, 03 Apr 2009 01:00:15 -0000 Message-Id: <20090403010015.9959.60697.malone@potassium.ubuntu.com> This is probably due to a get_stream RPC with an "ancestry-of" argument failing on a stacked branch? What ought to happen is fetching all the ancestry that the stacked branch has, then asking the fallback location for the ancestry of all the revisions that were referenced (but not present) in the first repo. --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Robert Collins (lifeless) Date: Fri, 03 Apr 2009 03:21:28 -0000 Message-Id: <1238728888.2700.211.camel@lifeless-64> On Fri, 2009-04-03 at 01:00 +0000, Andrew Bennetts wrote: > This is probably due to a get_stream RPC with an "ancestry-of" argument > failing on a stacked branch? >=20 > What ought to happen is fetching all the ancestry that the stacked > branch has, then asking the fallback location for the ancestry of all > the revisions that were referenced (but not present) in the first repo. I think its a broken repository; perhaps due to the known stacking issues that early bzr stacking support had? -Rob --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Jean-Francois Roy (jeanfrancois.roy) Date: Fri, 03 Apr 2009 03:37:21 -0000 Message-Id: <20090403033721.10027.26335.malone@potassium.ubuntu.com> Whoa, so are you saying every branch in that project is essentially hosed? --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Robert Collins (lifeless) Date: Fri, 03 Apr 2009 03:59:04 -0000 Message-Id: <1238731144.2700.215.camel@lifeless-64> On Fri, 2009-04-03 at 03:37 +0000, Jean-Francois Roy wrote: > Whoa, so are you saying every branch in that project is essentially > hosed? No, not at all. I'm speculating about the reason you get this error. We obviously need to check in some detail. And even if I'm correct it would indicate a single branch is in trouble, not all. One immediate test that can be done is to try 'bzr pull http://bazaar.launchpad.net/~rivenx/rivenx/domes' which will not use the smart server code path; if there is a bug in our smart server support this would work. Could you please try that? -Rob --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Jean-Francois Roy (jeanfrancois.roy) Date: Fri, 03 Apr 2009 04:12:30 -0000 Message-Id: <20090403041230.8986.99122.malone@palladium.canonical.com> I think there's something funky going on with bzr.dev: jfroy:Projects bahamut$ pwd /Volumes/Crossroads/bahamut/Documents/Projects jfroy:Projects bahamut$ bzr pull http://bazaar.launchpad.net/~rivenx/rivenx= /domes bzr: ERROR: Not a branch: "/Volumes/Crossroads/bahamut/Documents/Projects/". I in fact can't seem to be able to pull using any protocol (bzr+ssh, lp, http). --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Jean-Francois Roy (jeanfrancois.roy) Date: Fri, 03 Apr 2009 04:23:48 -0000 Message-Id: <20090403042348.18290.3051.malone@gandwana.canonical.com> OK nevermind the above. 'bzr branch http://bazaar.launchpad.net/~rivenx/rivenx/domes' completed successfully. --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Andrew Bennetts (spiv) Date: Fri, 03 Apr 2009 06:35:15 -0000 Message-Id: <20090403063515.19946.77317.malone@gandwana.canonical.com> I can reproduce this locally with a copy of your branches from Launchpad (copied via SFTP). It's not a regression in bzr.dev, it's a bug that's new in 1.13. It seems to stem from the fact that with the new smart server verbs some of the "which records to fetch" logic runs on the server rather than the client, and in the context they run on the server the server does not have any knowledge of the fallback (stacked-on) repository. This is turn reveals a bug in working on a stacked repository that doesn't have its fallbacks set. Specifically, fileids_altered_by_revision_ids is returning records that aren't altered in a particular revision, and this happens because that revision's parent is a ghost in this repo (but would be present in the fallback). The fix is probably to make the server return placeholder "you need this record, but I don't have it" records for those records. That basically amounts to serialising AbsentContentFactory on the wire, I guess. 1.13 clients won't understand that reply, but 1.13 clients are already failing in this case because of the server bug, so there's no new backwards compatibility issue. After extending the server to handle this case, I'll make backports of the fix for 1.13 and 1.14rc1. We'll want that fix backported to Launchpad's deployment and probably to Jaunty as well. We may want to release a 1.13.2. --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Andrew Bennetts (spiv) Date: Fri, 03 Apr 2009 06:45:33 -0000 Message-Id: <20090403064533.4074.730.malone@gangotri.canonical.com> I'm bumping this up to Critical; even though 1.13 had this bug too, I don't think we should release 1.14 without a fix for this. --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Elliot Murphy (statik) Date: Sun, 05 Apr 2009 16:09:43 -0000 Message-Id: <20090405160943.1697.47940.malone@gandwana.canonical.com> My whole team is using 1.13, I'm using 1.14 nightly builds, and am getting this traceback on every single branch that I try to merge this week - I've had to drop back to using bzr 1.12 to be able to keep working. --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Robert Collins (lifeless) Date: Sun, 05 Apr 2009 21:19:27 -0000 Message-Id: <1238966367.28697.17.camel@lifeless-64> On Sun, 2009-04-05 at 16:09 +0000, Elliot Murphy wrote: > My whole team is using 1.13, I'm using 1.14 nightly builds, and am > getting this traceback on every single branch that I try to merge this > week - I've had to drop back to using bzr 1.12 to be able to keep > working. Yes, we're preparing a fix+hotfix for 1.13 servers. -Rob --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Elliot Murphy (statik) Date: Mon, 06 Apr 2009 04:06:08 -0000 Message-Id: <20090406040609.9709.6851.malone@potassium.ubuntu.com> Excellent, thanks! --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Robert Collins (lifeless) Date: Tue, 07 Apr 2009 04:34:09 -0000 Message-Id: <20090407043410.1311.45368.malone@palladium.canonical.com> Ok, root cause analysis: - stacking currently does not require enough data be available to generate= inventory deltas for the first revision in the stacking branch - the new server fetch code depends [reasonably so] on being able to gener= ate inventory deltas for the revisions present in the stacking branch Fixes: Immediately: 1) we will modify bzr so that enough data will be stored in new stacked bra= nches. This will cause a 1.13.1 client pushing to a fixed server to push en= ough data. 2) We also plan to change the client code to anticipate that this is needed= so that a fixed client pushing to a 1.13 server will upload enough data. T= his isn't strictly needed and if too complex we'll not do it. Long term: We'll change some deeper aspects of streaming push and pull to allow the se= rver to report errors like this that occur in a cleaner way, and because th= ey will only occur when something is actually wrong, we won't need massive = complexity in the client to handle it. --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Andrew Bennetts (spiv) Date: Tue, 07 Apr 2009 07:14:19 -0000 Message-Id: <20090407071419.6460.56853.malone@potassium.ubuntu.com> My lp:~spiv/bzr/stacking-inventory branch has the client-side fix; pushing a stacked branch with this client should result in a branch that even a 1.13.1 client and server will work with. It's a pretty small, self-contained fix. We still need to make a fix for the server to trigger 1.13.1 clients to send the missing data (part 1 of Robert's plan above). --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Tim Penhey (thumper) Date: Thu, 09 Apr 2009 04:18:13 -0000 Message-Id: <20090409041813.17655.1849.malone@gangotri.canonical.com> So all this talks about fixes to the client and server in order to push new branches. What about a fix that will allow me to pull a branch that was created by a 1.13.1 client and server? Is that part of this? --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Andrew Bennetts (spiv) Date: Thu, 09 Apr 2009 06:57:48 -0000 Message-Id: <20090409065749.26786.94738.malone@palladium.canonical.com> Tim: In general, a smart server can't generate a valid stream for an affected branch, because it doesn't have enough data to distinguish between "complete delta for a revision" and "silently missing crucial parts". For Launchpad, we can fix affected branches by filling in the missing data (i.e. transferring the required parent inventories) from the stacking location, which is also on Launchpad. We should definitely do this after getting fixed clients out there (and cherry-picking a fix to make LP's server ask unfixed clients to send the necessary keys). If we fix up the data in hosted branches after applying the fix to the server, then all branches will be fixed, and all new branches will be fine as well. --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Andrew Bennetts (spiv) Date: Thu, 09 Apr 2009 07:02:13 -0000 Message-Id: <20090409070213.1916.11511.malone@potassium.ubuntu.com> Well, it will still be possible to make broken branches with unfixed clients via SFTP, but those can always be retrieved via SFTP (because in that case the client is able to find the missing data itself, by looking at the fallback repository, whereas the server is unable to use fallbacks). I suppose pre-1.13 clients will also continue to push up incomplete stacked branches too, because they don't use the RPC that will cause the "please send more keys" response from the server. Hopefully there won't be many of those for long, because 1.13 is much faster at network operations. --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Robert Collins (lifeless) Date: Thu, 09 Apr 2009 07:32:23 -0000 Message-Id: <1239262343.2892.181.camel@lifeless-64> On Thu, 2009-04-09 at 04:18 +0000, Tim Penhey wrote: > So all this talks about fixes to the client and server in order to push > new branches. >=20 > What about a fix that will allow me to pull a branch that was created by > a 1.13.1 client and server? Is that part of this? In addition to Andrew's reply - its not generally possible to fix this. All clients from 1.6 through to 1.13.2 and 1.14 (assuming this fix gets in) will generate broken stacked branches on sftp;, and 1.6 through to 1.13 will generate broken stacked branches on bzr+ssh. Fortunately, stacking is slow and painful before 1.13, and therefor folk are likely to upgrade :). -Rob --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Stewart Smith (stewart) Date: Thu, 09 Apr 2009 08:16:52 -0000 Message-Id: <20090409081652.13389.73601.malone@gandwana.canonical.com> Rob pointed me to this bug when I told him about this: stewart@willster:~/drizzle$ bzr branch lp:~eday/drizzle/eday-dev bzr: ERROR: bzrlib.errors.ErrorFromSmartServer: Error received from smart s= erver: ('NoSuchRevision',) Traceback (most recent call last): File "/home/stewart/lib/python/bzrlib/commands.py", line 727, in exceptio= n_to_return_code return the_callable(*args, **kwargs) File "/home/stewart/lib/python/bzrlib/commands.py", line 922, in run_bzr ret =3D run(*run_argv) File "/home/stewart/lib/python/bzrlib/commands.py", line 559, in run_argv= _aliases return self.run(**all_cmd_args) File "/home/stewart/lib/python/bzrlib/builtins.py", line 1122, in run source_branch=3Dbr_from) File "/home/stewart/lib/python/bzrlib/bzrdir.py", line 1142, in sprout result_repo.fetch(source_repository, revision_id=3Drevision_id) File "/home/stewart/lib/python/bzrlib/repository.py", line 1493, in fetch find_ghosts=3Dfind_ghosts, fetch_spec=3Dfetch_spec) File "/home/stewart/lib/python/bzrlib/decorators.py", line 192, in write_= locked result =3D unbound(self, *args, **kwargs) File "/home/stewart/lib/python/bzrlib/repository.py", line 3057, in fetch pb=3Dpb, find_ghosts=3Dfind_ghosts) File "/home/stewart/lib/python/bzrlib/fetch.py", line 84, in __init__ self.__fetch() File "/home/stewart/lib/python/bzrlib/fetch.py", line 110, in __fetch self._fetch_everything_for_search(search) File "/home/stewart/lib/python/bzrlib/fetch.py", line 138, in _fetch_ever= ything_for_search stream, from_format, []) File "/home/stewart/lib/python/bzrlib/repository.py", line 3926, in inser= t_stream return self._locked_insert_stream(stream, src_format) File "/home/stewart/lib/python/bzrlib/repository.py", line 3954, in _lock= ed_insert_stream for substream_type, substream in stream: File "/home/stewart/lib/python/bzrlib/remote.py", line 1734, in missing_p= arents_chain stream =3D self._get_stream(source, search) File "/home/stewart/lib/python/bzrlib/remote.py", line 1706, in _get_stre= am (path, self.to_format.network_name()), search_bytes) File "/home/stewart/lib/python/bzrlib/remote.py", line 71, in _call_with_= body_bytes_expecting_body self._translate_error(err, **err_context) File "/home/stewart/lib/python/bzrlib/remote.py", line 688, in _translate= _error self.bzrdir._translate_error(err, repository=3Dself, **context) File "/home/stewart/lib/python/bzrlib/remote.py", line 129, in _translate= _error _translate_error(err, bzrdir=3Dself, **context) File "/home/stewart/lib/python/bzrlib/remote.py", line 2497, in _translat= e_error raise NoSuchRevision(find('branch'), err.error_args[0]) File "/home/stewart/lib/python/bzrlib/remote.py", line 2481, in find raise err ErrorFromSmartServer: Error received from smart server: ('NoSuchRevision',) bzr 1.15dev on python 2.5.2 (linux2) arguments: ['/home/stewart/bin/bzr', 'branch', 'lp:~eday/drizzle/eday-dev'] encoding: 'UTF-8', fsenc: 'UTF-8', lang: 'en_AU.UTF-8' plugins: automv /home/stewart/.bazaar/plugins/automv [unknown] bisect /home/stewart/.bazaar/plugins/bisect [1.1.0.pre.0] bzrtools /home/stewart/.bazaar/plugins/bzrtools [1.13] checkeol /home/stewart/.bazaar/plugins/checkeol [1.2.1] diffstat /home/stewart/.bazaar/plugins/diffstat [0.2] gtk /home/stewart/.bazaar/plugins/gtk [0.96.0.dev.1] launchpad /home/stewart/lib/python/bzrlib/plugins/launchpad [u= nknown] lessdiff /home/stewart/.bazaar/plugins/lessdiff [unknown] loom /home/stewart/.bazaar/plugins/loom [1.4dev] mysql_plugins /home/stewart/.bazaar/plugins/mysql_plugins [0.4.2] netrc_credential_store /home/stewart/lib/python/bzrlib/plugins/netrc_cred= ential_store [unknown] notification /home/stewart/.bazaar/plugins/notification [unknown] rebase /home/stewart/.bazaar/plugins/rebase [0.4.5dev] repopush /home/stewart/.bazaar/plugins/repopush [1.1] search /home/stewart/.bazaar/plugins/search [1.7dev] signing /home/stewart/.bazaar/plugins/signing [unknown] stats /home/stewart/.bazaar/plugins/stats [unknown] *** 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. --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Robert Collins (lifeless) Date: Thu, 09 Apr 2009 08:23:12 -0000 Message-Id: <1239265392.2892.184.camel@lifeless-64> It may be worth checking for this on branch unlock, and if detected fixing it programatically. At least for a few months. --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Martin Albisetti (beuno) Date: Mon, 13 Apr 2009 19:06:07 -0000 Message-Id: <20090413190607.22241.8157.malone@palladium.canonical.com> Any updates on this? --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Andrew Bennetts (spiv) Date: Mon, 13 Apr 2009 23:44:43 -0000 Message-Id: <20090413234443.14191.94129.malone@gandwana.canonical.com> Hi Stewart, I've seen that one too. I haven't dug too deeply, but I think that's actually a different (although related) bug. I've filed bug 360791 for it. I've put a preliminary analysis and possible workarounds for that bug in the description of bug 360791. (Let's use bug 360791 to for any further discussion of "Error received from smart server: ('NoSuchRevision',)" with 1.13+ servers, rather than cluttering this one.) --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Andrew Bennetts (spiv) Date: Tue, 14 Apr 2009 23:11:00 -0000 Message-Id: <20090414231100.794.24190.malone@potassium.ubuntu.com> The client-side fix for this has now landed in bzr.dev. --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Martin Pool (mbp) Date: Tue, 14 Apr 2009 23:18:30 -0000 Message-Id: <20090414231830.22241.83622.malone@palladium.canonical.com> So the infestations of this bug are: With both client and server > 1.14rc1 there's no problem. If the client is >=3D1.13 && <=3D1.14rc1 you'll be susceptible to this prob= lem, and may hit it eventually. This was introduced in 1.13 and discovered when Launchpad upgraded to 1.13. The cause of the problem goes back to 1.6 (where stacking was added) but it can only be seen when there's a streaming pull from a stacked repository, which was added in 1.13. We were trying to have a way to have a new server cause the client to do the right thing, but at present it only works sometimes. In other cases it will cause an assertion in the client, which is still better than having the client think it's pushed and get it wrong. However, it may be possible to fix this. That seems to mean this must be fixed in jaunty, probably with a minimal 1.13.2. --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Bob Tanner (tanner) Date: Sat, 18 Apr 2009 20:43:56 -0000 Message-Id: <20090418204356.26055.43058.malone@potassium.ubuntu.com> Merged into 1.14rc2. Thanks. --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Nicola Larosa (teknico) Date: Tue, 21 Apr 2009 08:59:41 -0000 Message-Id: <20090421085941.10875.33561.malone@gangotri.canonical.com> After upgrading Bazaar to 0.14rc2, I'm still seeing this: $ bzr merge lp:~thisfred/ubunet/contacts-api bzr: ERROR: bzrlib.errors.ErrorFromSmartServer: Error received from smart s= erver: ('error', "'AbsentContentFactory' object has no attribute 'get_bytes= _as'") = =20 Traceback (most recent call last): File "/usr/lib/python2.6/dist-packages/bzrlib/commands.py", line 727, in = exception_to_return_code return the_callable(*args, **kwargs) = =20 File "/usr/lib/python2.6/dist-packages/bzrlib/commands.py", line 922, in = run_bzr =20 ret =3D run(*run_argv) = =20 File "/usr/lib/python2.6/dist-packages/bzrlib/commands.py", line 559, in = run_argv_aliases =20 return self.run(**all_cmd_args) = =20 File "/usr/lib/python2.6/dist-packages/bzrlib/builtins.py", line 3527, in= run =20 location, revision, remember, possible_transports, pb) = =20 File "/usr/lib/python2.6/dist-packages/bzrlib/builtins.py", line 3634, in= _get_merger_from_branch other_revision_id, base_revision_id, other_branch, base_branch) = =20 File "/usr/lib/python2.6/dist-packages/bzrlib/merge.py", line 204, in fro= m_revision_ids =20 merger.set_other_revision(other, other_branch) = =20 File "/usr/lib/python2.6/dist-packages/bzrlib/merge.py", line 345, in set= _other_revision =20 self._maybe_fetch(other_branch, self.this_branch, self.other_rev_id) = =20 File "/usr/lib/python2.6/dist-packages/bzrlib/merge.py", line 362, in _ma= ybe_fetch =20 target.fetch(source, revision_id) = =20 File "/usr/lib/python2.6/dist-packages/bzrlib/decorators.py", line 192, i= n write_locked =20 result =3D unbound(self, *args, **kwargs) = =20 File "/usr/lib/python2.6/dist-packages/bzrlib/branch.py", line 522, in fe= tch =20 pb=3Dpb) = =20 File "/usr/lib/python2.6/dist-packages/bzrlib/repository.py", line 1493, = in fetch =20 find_ghosts=3Dfind_ghosts, fetch_spec=3Dfetch_spec) = =20 File "/usr/lib/python2.6/dist-packages/bzrlib/decorators.py", line 192, i= n write_locked =20 result =3D unbound(self, *args, **kwargs) File "/usr/lib/python2.6/dist-packages/bzrlib/repository.py", line 3057, = in fetch pb=3Dpb, find_ghosts=3Dfind_ghosts) File "/usr/lib/python2.6/dist-packages/bzrlib/fetch.py", line 84, in __in= it__ self.__fetch() File "/usr/lib/python2.6/dist-packages/bzrlib/fetch.py", line 110, in __f= etch self._fetch_everything_for_search(search) File "/usr/lib/python2.6/dist-packages/bzrlib/fetch.py", line 138, in _fe= tch_everything_for_search stream, from_format, []) File "/usr/lib/python2.6/dist-packages/bzrlib/repository.py", line 3945, = in insert_stream return self._locked_insert_stream(stream, src_format) File "/usr/lib/python2.6/dist-packages/bzrlib/repository.py", line 3973, = in _locked_insert_stream for substream_type, substream in stream: File "/usr/lib/python2.6/dist-packages/bzrlib/remote.py", line 1735, in m= issing_parents_chain for kind, substream in stream: File "/usr/lib/python2.6/dist-packages/bzrlib/smart/repository.py", line = 447, in record_stream for bytes in byte_stream: File "/usr/lib/python2.6/dist-packages/bzrlib/smart/message.py", line 336= , in read_streamed_body _translate_error(self._body_error_args) File "/usr/lib/python2.6/dist-packages/bzrlib/smart/message.py", line 355= , in _translate_error raise errors.ErrorFromSmartServer(error_tuple) ErrorFromSmartServer: Error received from smart server: ('error', "'AbsentC= ontentFactory' object has no attribute 'get_bytes_as'") bzr 1.14rc2 on python 2.6.2 (linux2) arguments: ['/usr/bin/bzr', 'merge', 'lp:~thisfred/ubunet/contacts-api'] encoding: 'UTF-8', fsenc: 'UTF-8', lang: 'en_US.UTF-8' plugins: bzrtools /usr/lib/python2.6/dist-packages/bzrlib/plugins/bzrt= ools [1.14] launchpad /usr/lib/python2.6/dist-packages/bzrlib/plugins/laun= chpad [unknown] netrc_credential_store /usr/lib/python2.6/dist-packages/bzrlib/plugins/ne= trc_credential_store [unknown] pqm /usr/lib/python2.6/dist-packages/bzrlib/plugins/pqm = [1.3] rebase /usr/lib/python2.6/dist-packages/bzrlib/plugins/reba= se [0.4.4] svn /usr/lib/python2.6/dist-packages/bzrlib/plugins/svn = [0.5.4] *** 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. --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Martin Pool (mbp) Date: Tue, 21 Apr 2009 10:13:10 -0000 Message-Id: <20090421101311.13893.34090.malone@potassium.ubuntu.com> Reopened per ~thisfred (who obviously meant to say 1.14rc2) --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Andrew Bennetts (spiv) Date: Tue, 21 Apr 2009 14:17:28 -0000 Message-Id: <20090421141729.14919.45767.malone@potassium.ubuntu.com> Nicola: do you know if that branch was pushed with 1.14rc2 (and never any older version)? If so this is expected behaviour (unfortunately), not another case of this bug. Even with 1.14rc2 on both the client and the server you will still get this error from stacked branches pushed with older bzr versions, because those versions can push stacked branches that are incomplete. i.e. the "AbsentContentFactory" error is the symptom, not the bug. The bug occurs silently during "push", but is only noticed later when doing a pull/merge/etc. (We should improve the server to give a better error to the client in this scenario, because presumably old clients will keep creating stacked branches for a while to come, but we should track that in a separate bug.) --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Nicola Larosa (teknico) Date: Tue, 21 Apr 2009 14:20:58 -0000 Message-Id: <20090421142058.19050.12856.malone@gandwana.canonical.com> Yeah, I meant to say 1.14rc2, sorry. By the way, I'm teknico (~teknico.net on LP, ugh), I was trying to merge a branch by thisfred. :-) --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Nicola Larosa (teknico) Date: Tue, 21 Apr 2009 14:47:18 -0000 Message-Id: <20090421144718.2047.99597.malone@palladium.canonical.com> > Nicola: do you know if that branch was pushed with 1.14rc2 > (and never any older version)? If so this is expected behaviour > (unfortunately), not another case of this bug. AFAIK, that branch was pushed at least yesterday, before today's upgrade to 1.14rc2, so no. I'll ask thisfred confirmation later, when I get hold of him. As a workaround, I downgraded to 1.13.1, and get no errors anymore. We do use stacked branches. What's the fix for the real bug? Do we need to change something in the local, stacked branches? Does anything in bzr code need to change? --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Andrew Bennetts (spiv) Date: Wed, 22 Apr 2009 00:15:41 -0000 Message-Id: <20090422001542.7359.79391.malone@potassium.ubuntu.com> I've updated the bug description to hopefully make the fix for affected branches more explicit: currently the only way to fix an affected branch is to delete it and push it again with a fixed client (such as 1.14rc2). Some other workarounds are listed in the bug description too. Thanks for the update, it sounds like this isn't a new instance of this bug, so I'll close this bug again. --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Robert Collins (lifeless) Date: Wed, 22 Apr 2009 01:20:53 -0000 Message-Id: <1240363253.5495.56.camel@lifeless-64> This should repair a branch. import bzrlib.branch from bzrlib.revision import NULL_REVISION b =3D bzrlib.branch.Branch.open(argv[1]) def main(): b.lock_read() if not b.repository._fallback_repositories: return raw_r =3D b.repository.bzrdir.open_repository() raw_r.lock_write() try: revs =3D raw_r.all_revision_ids() rev_parents =3D raw_r.get_graph().get_parent_map(revs) needed =3D set() map(needed.update, rev_parents.itervalues()) needed.discard(NULL_REVISION) needed =3D set((rev,) for rev in needed) needed =3D needed - raw_r.inventories.keys() print "Missing inventories: %r" % needed if not needed: return assert raw_r._format.network_name() =3D=3D b.repository._format.network_name() stream =3D b.repository.inventories.get_record_stream(needed, 'topological', True) raw_r.start_write_group() try: raw_r.inventories.insert_recort_stream(stream) except: raw_r.abort_write_group() raise else: raw_r.commit_write_group() finally: raw_r.unlock() main() --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Bob Tanner (tanner) Date: Wed, 22 Apr 2009 22:56:28 -0000 Message-Id: <20090422225628.8803.70430.malone@palladium.canonical.com> Merged into 1.13.2, I cannot change the bug task Status, so posting here. See http://permalink.gmane.org/gmane.comp.version-control.bazaar- ng.general/57030 for my question regarding changing Status. --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Nicola Larosa (teknico) Date: Thu, 23 Apr 2009 08:58:01 -0000 Message-Id: <20090423085801.5326.97596.malone@potassium.ubuntu.com> Today we upgraded bzr to 1.14~rc2-1~bazaar1~jaunty1. Then we run "bzr push --overwrite" on both branches (the one being merged, and the one receiving the merge), but the problem was still there. We then removed both branches from LP and pushed them again, but still no luck. --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Rick McBride (rmcbride) Date: Thu, 23 Apr 2009 20:34:24 -0000 Message-Id: <20090423203425.24007.50401.malone@gangotri.canonical.com> Ubuntu One is definitely still seeing problems with this, as Nicola indicated above. I don't know what the proper thing to do with the status is on this, but I'm going to chime in with a "this isn't entirely fixed" opinion at this point. --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Robert Collins (lifeless) Date: Thu, 23 Apr 2009 21:59:03 -0000 Message-Id: <1240523943.5495.176.camel@lifeless-64> On Thu, 2009-04-23 at 08:58 +0000, Nicola Larosa wrote: >=20 > Then we run "bzr push --overwrite" on both branches (the one being > merged, and the one receiving the merge), but the problem was still > there. This wouldn't fix the problem. > We then removed both branches from LP and pushed them again, but still > no luck. This should have. Have you tried my fix script? -Rob --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Rick McBride (rmcbride) Date: Thu, 23 Apr 2009 22:20:54 -0000 Message-Id: <49F0E9C6.2090505@canonical.com> when I try that script on an affected branch, I get Traceback (most recent call last): File "/home/rmcbride/foo.py", line 3, in b =3D bzrlib.branch.Branch.open(argv[1]) NameError: name 'argv' is not defined I'm guessing there's a parameter I should be passing Robert Collins wrote: > On Thu, 2009-04-23 at 08:58 +0000, Nicola Larosa wrote: >> Then we run "bzr push --overwrite" on both branches (the one being >> merged, and the one receiving the merge), but the problem was still >> there. >=20 > This wouldn't fix the problem. >=20 >> We then removed both branches from LP and pushed them again, but still >> no luck. >=20 > This should have. Have you tried my fix script? >=20 > -Rob > --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Robert Collins (lifeless) Date: Thu, 23 Apr 2009 22:51:59 -0000 Message-Id: <1240527119.5495.185.camel@lifeless-64> On Thu, 2009-04-23 at 22:20 +0000, Rick McBride wrote: > when I try that script on an affected branch, I get >=20 > Traceback (most recent call last): > File "/home/rmcbride/foo.py", line 3, in > b =3D bzrlib.branch.Branch.open(argv[1]) > NameError: name 'argv' is not defined >=20 >=20 > I'm guessing there's a parameter I should be passing New version that should fix that. And yes, run as=20 python foo.py lp:BRANCHONLP --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Rick McBride (rmcbride) Date: Thu, 23 Apr 2009 23:28:54 -0000 Message-Id: <49F0F9B6.5050501@canonical.com> Robert Collins wrote: > On Thu, 2009-04-23 at 22:20 +0000, Rick McBride wrote: >> when I try that script on an affected branch, I get >> >> Traceback (most recent call last): >> File "/home/rmcbride/foo.py", line 3, in >> b =3D bzrlib.branch.Branch.open(argv[1]) >> NameError: name 'argv' is not defined >> >> >> I'm guessing there's a parameter I should be passing >=20 > New version that should fix that. >=20 > And yes, run as=20 > python foo.py lp:BRANCHONLP >=20 >=20 > ** Attachment added: "foo.py" > http://launchpadlibrarian.net/25904342/foo.py >=20 When I do that=20 (rmcbride@strangiato:~/canonical/ubunet/homepage-teh-client-pkg$ python=20 /home/rmcbride/foo.py lp:~rmcbride/ubunet/homepage-teh-client-pkg) I get bzrlib.errors.NotBranchError: Not a branch:=20 "/home/rmcbride/canonical/ubunet/homepage-teh-client-pkg/lp:~rmcbride/ubune= t/homepage-teh-client-pkg/". When I leave it out I now get Traceback (most recent call last): File "/home/rmcbride/foo.py", line 4, in b =3D bzrlib.branch.Branch.open(sys.argv[1]) IndexError: list index out of range --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Robert Collins (lifeless) Date: Thu, 23 Apr 2009 23:50:11 -0000 Message-Id: <1240530611.5495.186.camel@lifeless-64> On Thu, 2009-04-23 at 23:28 +0000, Rick McBride wrote: > Robert Collins wrote: > > On Thu, 2009-04-23 at 22:20 +0000, Rick McBride wrote: > >> when I try that script on an affected branch, I get > >> > >> Traceback (most recent call last): > >> File "/home/rmcbride/foo.py", line 3, in > >> b =3D bzrlib.branch.Branch.open(argv[1]) > >> NameError: name 'argv' is not defined > >> > >> > >> I'm guessing there's a parameter I should be passing > >=20 > > New version that should fix that. > >=20 > > And yes, run as=20 > > python foo.py lp:BRANCHONLP > >=20 > >=20 > > ** Attachment added: "foo.py" > > http://launchpadlibrarian.net/25904342/foo.py > >=20 >=20 >=20 > When I do that=20 > (rmcbride@strangiato:~/canonical/ubunet/homepage-teh-client-pkg$ python=20 > /home/rmcbride/foo.py lp:~rmcbride/ubunet/homepage-teh-client-pkg) >=20 > I get >=20 > bzrlib.errors.NotBranchError: Not a branch:=20 > "/home/rmcbride/canonical/ubunet/homepage-teh-client-pkg/lp:~rmcbride/ubu= net/homepage-teh-client-pkg/". Oh,I haven't loaded plugins. use bzr +ssh://bazaar.launchpad.net/~rmcbride/ubunet/homepage-teh-client-pkg --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Rick McBride (rmcbride) Date: Thu, 23 Apr 2009 23:58:17 -0000 Message-Id: <49F10099.4060303@canonical.com> That seems to work more, but I do get the following message: Missing inventories: set([]) Robert Collins wrote: > On Thu, 2009-04-23 at 23:28 +0000, Rick McBride wrote: >> Robert Collins wrote: >>> On Thu, 2009-04-23 at 22:20 +0000, Rick McBride wrote: >>>> when I try that script on an affected branch, I get >>>> >>>> Traceback (most recent call last): >>>> File "/home/rmcbride/foo.py", line 3, in >>>> b =3D bzrlib.branch.Branch.open(argv[1]) >>>> NameError: name 'argv' is not defined=20 >>>> >>>> >>>> I'm guessing there's a parameter I should be passing >>> New version that should fix that. >>> >>> And yes, run as=20 >>> python foo.py lp:BRANCHONLP >>> >>> >>> ** Attachment added: "foo.py" >>> http://launchpadlibrarian.net/25904342/foo.py >>> >> >> When I do that=20 >> (rmcbride@strangiato:~/canonical/ubunet/homepage-teh-client-pkg$ python = >> /home/rmcbride/foo.py lp:~rmcbride/ubunet/homepage-teh-client-pkg) >> >> I get >> >> bzrlib.errors.NotBranchError: Not a branch:=20 >> "/home/rmcbride/canonical/ubunet/homepage-teh-client-pkg/lp:~rmcbride/ub= unet/homepage-teh-client-pkg/". >=20 > Oh,I haven't loaded plugins. >=20 > use bzr > +ssh://bazaar.launchpad.net/~rmcbride/ubunet/homepage-teh-client-pkg > --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Robert Collins (lifeless) Date: Fri, 24 Apr 2009 00:14:19 -0000 Message-Id: <1240532059.5495.187.camel@lifeless-64> On Thu, 2009-04-23 at 23:58 +0000, Rick McBride wrote: > That seems to work more, but I do get the following message: >=20 > Missing inventories: set([]) That means that your branch appears fine. You're not suffering *this bug* on *that branch*. -Rob --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Rick McBride (rmcbride) Date: Fri, 24 Apr 2009 00:21:29 -0000 Message-Id: <49F10609.9090902@canonical.com> OK. I suspected as much. I'm afraid something else may be wrong then, as=20 Phil Fibiger reported the same error with that exact branch... Robert Collins wrote: > On Thu, 2009-04-23 at 23:58 +0000, Rick McBride wrote: >=20 >> That seems to work more, but I do get the following message: >> >> Missing inventories: set([]) >=20 > That means that your branch appears fine. You're not suffering *this > bug* on *that branch*. >=20 > -Rob > --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Robert Collins (lifeless) Date: Fri, 24 Apr 2009 00:56:23 -0000 Message-Id: <1240534583.5495.189.camel@lifeless-64> spiv, care to double check my foo.py? --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Andrew Bennetts (spiv) Date: Mon, 27 Apr 2009 09:06:02 -0000 Message-Id: <20090427090602.5332.19310.malone@potassium.ubuntu.com> Robert, your script looks sane, but I haven't tested it... --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Guillermo Gonzalez (verterok) Date: Mon, 27 Apr 2009 13:24:36 -0000 Message-Id: <20090427132436.22559.1772.malone@gandwana.canonical.com> Robert I tried the script but I keep getting this error: Missing inventories: set([('pqm@pqm.ubuntu.com-20090424194131-qejafldvm3790= pnz',), ('pqm@pqm.ubuntu.com-20090424154639-irhxcy29a2llkv23',)]) Traceback (most recent call last): File "/home/guillermo/Desktop/foo(2).py", line 36, in main() File "/home/guillermo/Desktop/foo(2).py", line 27, in main raw_r.inventories.insert_recort_stream(stream) AttributeError: 'KnitVersionedFiles' object has no attribute 'insert_recort= _stream' Also tried to delete and re-push the branch with bzr.dev and hitted the error with 1.14rc2 clients. --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Eric Casteleijn (thisfred) Date: Mon, 27 Apr 2009 13:35:00 -0000 Message-Id: <20090427133501.10838.26492.malone@potassium.ubuntu.com> There's a typo in the script: L27: raw_r.inventories.insert_recort_stream(stream) should be: raw_r.inventories.insert_record_stream(stream) --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Robert Collins (lifeless) Date: Mon, 27 Apr 2009 13:35:43 -0000 Message-Id: <1240839343.15116.118.camel@lifeless-64> On Mon, 2009-04-27 at 13:24 +0000, Guillermo Gonzalez wrote: > Robert I tried the script but I keep getting this error: >=20 > Missing inventories: set([('pqm@pqm.ubuntu.com-20090424194131-qejafldvm37= 90pnz',), ('pqm@pqm.ubuntu.com-20090424154639-irhxcy29a2llkv23',)]) > Traceback (most recent call last): > File "/home/guillermo/Desktop/foo(2).py", line 36, in > main() > File "/home/guillermo/Desktop/foo(2).py", line 27, in main > raw_r.inventories.insert_recort_stream(stream) > AttributeError: 'KnitVersionedFiles' object has no attribute 'insert_reco= rt_stream' s/recort/record :) Just a typo - might want to attach a new vesion. -Rob --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Nicola Larosa (teknico) Date: Mon, 27 Apr 2009 13:40:03 -0000 Message-Id: <20090427134003.10954.683.malone@palladium.canonical.com> The script is producing the following output: Missing inventories: set([('pqm@pqm.ubuntu.com-20090420160237-yw9e8n5a307gcqth',), ('pqm@pqm.ubuntu.com-20090422083034-s0shm3d0hxhg84lq',), ('pqm@pqm.ubuntu.com-20090420214347-k1gk0keo4a7uxt2h',), ('pqm@pqm.ubuntu.com-20090422230628-xtyi56fbatp545z8',), ('pqm@pqm.ubuntu.com-20090423201454-bscveppbq3t0hpqf',), ('pqm@pqm.ubuntu.com-20090424164259-u2gmlzow130bpaho',), ('pqm@pqm.ubuntu.com-20090427044751-7mxz2gei6nxsrj9t',), ('pqm@pqm.ubuntu.com-20090417154022-pxsz93dbtv43n0my',), ('pqm@pqm.ubuntu.com-20090420184923-ygjiru4iutsu1b0v',), ('pqm@pqm.ubuntu.com-20090423174041-kltbfhdz4un16iq0',)]) It also seem to contain a typo on line #27, insert_recort_stream should possibly be insert_record_stream . The above output was obtained after correcting said typo. --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Robert Collins (lifeless) Date: Thu, 30 Apr 2009 04:11:46 -0000 Message-Id: <20090430041147.15584.35166.malone@potassium.ubuntu.com> bzr versions 1.6->1.12 inclusive will continue to create branches with insufficient data. We can't tell the server to tell them to upload more data as we can for 1.13 and above. We should look at running the fix script or something similar after such clients write to a stacked branch. --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Robert Collins (lifeless) Date: Thu, 30 Apr 2009 05:19:25 -0000 Message-Id: <20090430051925.4942.91881.malone@palladium.canonical.com> --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Andrew Bennetts (spiv) Date: Mon, 31 Aug 2009 10:21:56 -0000 Message-Id: <20090831102156.1374.53302.malone@gangotri.canonical.com> Michael: why is this Fix Committed in Launchpad? As far as I know users still have no way to fix branches in the mirrored area of code hosting, even if they run the fix script on their hosted branch. (or on the mirror source for externally hosted branches). --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Andrew Bennetts (spiv) Date: Mon, 31 Aug 2009 10:25:44 -0000 Message-Id: <20090831102544.2757.27796.malone@gandwana.canonical.com> I've updated the bug summary to try reflect the outstanding issue AIUI, which is that the fix script from Robert isn't enough to make branches on Launchpad usable because the fix doesn't get propagated from from the hosted (writeable) copy to the mirrored (read-only) copy. If there's a separate bug tracking that already please feel free to link to it from this bug. --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Michael Hudson-Doyle (mwhudson) Date: Mon, 31 Aug 2009 22:30:18 -0000 Message-Id: <20090831223018.6231.6638.malone@potassium.ubuntu.com> I presume it's fix committed because we cherry picked the fix that asks older clients to upload more data, as per comment #15. If something more needs to be done (and it looks like there is), I'm not sure a bug report is the best place for talking about it, especially one this long and colourful. Let's talk about it on IRC, and send an RT? --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Robert Collins (lifeless) Date: Mon, 31 Aug 2009 22:49:26 -0000 Message-Id: <1251758966.25806.54.camel@lifeless-64> Lets talk, but we may need open the bug depending whether the outcome is 'more code' or 'fix all branches'. -Rob --===============8267723365425008105== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: Robert Collins (lifeless) Date: Mon, 31 Aug 2009 22:57:00 -0000 Message-Id: <1251759420.25806.55.camel@lifeless-64> We talked. The summary is 'File an RT' --===============8267723365425008105==--