Comment 7 for bug 653307

Revision history for this message
Andrew Bennetts (spiv) wrote :

So, here' s a summary of where I'm at:

 * existing package import branches on Launchpad have mutually inconsistent data. This will need to be fixed one way or another
 * a fresh import of affected branches using import_package.py --no-existing works correctly AFAICS
 * nowhere in the lp:udd or lp:bzr-builddeb code appears any likely suspects for generating this sort of inconsistency, and a cursory glance at their revision history doesn't show any likely culprits either.

So I'm currently stumped as to the root cause. Something somewhere must have specified an existing revision ID when generating a new revision or inventory object, I think. But I just can't find any code here that would have done that.

I've polished my cross-check command and have mostly integrated it into lp:bzr-crosscheck. The current work-in-progress is lp:~spiv/bzr-crosscheck/integration.

What's the cost to redoing the affected imports from scratch? They would be effectively parallel imports, but perhaps no-one has made branches of them? I'm thinking that doing this might be the simplest and quickest way to fix the affected package imports.

Another related thought I've had is that it would probably be worth extending bzr's error reporting in this case to include the revid(s) that reference those root keys. it would cost a little time to calculate, but not very much and only affects this serious error case anyway, and would help by pointing straight to the affected revision(s).