Soyuz refuses to build superseded Source which is actually published

Bug #444030 reported by Cody A.W. Somerville on 2009-10-05
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Launchpad itself
William Grant

Bug Description

While writing a script to use launchpadlib to copy all the packages in one PPA into another, I got the following error:

"Traceback (most recent call last):
  File "./pull-ppa", line 63, in <module>
  File "/usr/lib/python2.6/dist-packages/lazr/restfulclient/", line 460, in __call__
    url, in_representation, http_method, extra_headers=extra_headers)
  File "/usr/lib/python2.6/dist-packages/lazr/restfulclient/", line 204, in _request
    raise HTTPError(response, content)
lazr.restfulclient.errors.HTTPError: HTTP Error 400: Bad Request"

Wondering what package might be causing a problem, I edit my script to write the name of each source package being copied before performing the operation. The second run with this modified script indicated that empathy was the problem. Looking into the destination PPA, I noticed that empathy was already there but was pending a build for lpia. Checking the source PPA, I notice that the package had failed to build for lpia.

Thinking that the pending build for empathy on lpia caused the error I saw masking the real problem package, I delete empathy from the destination PPA (presumably before it got dispatched) and try copying copying the package via the web UI to verify and also hope that the UI might provide more verbose details of the problem. On my first attempt, I got an error messaging that it couldn't copy it because the package already existed in the target PPA and was in fact in the process of being built. Once again switching back to the destination PPA, I look but do not find empathy. To my delight, attempting to copy empathy once again is successful.

Getting ready to test my script again, I decide to delete empathy from the destination PPA again to prevent my script from erroring out due to the pending lpia build. However, upon inspection I notice a check mark besides empathy instead of the icon to indicate needs-build for lpia. Expanding the package details, I see lpia listed under 'Builds' with an icon I was not familiar with. Clicking on the link to view the build details, I see it is the superseded icon which accompanied the red colored error "Build for superseded Source" on the build details page.

I waited a few minutes to see if Soyuz required a little bit to detect the package was no longer "superseded" (which I think is incorrect, the source was deleted not superseded) but thus far no change. It would seem to me that the correct behavior would be for Soyuz to build the missing binary.

Related branches

Strange. I just noticed that in +delete-packages, the same version of empathy shows up twice which doesn't seem correct. Searching for empathy on the package details page doesn't return duplicates.

See attaching screenshot.

tags: added: oem-services
Julian Edwards (julian-edwards) wrote :

So the problem is that it's not resurrecting the existing source properly. What it should do is:

 * change the existing source and any publishing records from DELETED to PENDING
 * any existing build records that are not FULLYBUILT should be set to NEEDSBUILD. unless they were FAILEDTOBUILD.
 * new build records should be created where appropriate (e.g. new architecture might be available)

Changed in soyuz:
status: New → Triaged
importance: Undecided → Low
tags: added: ppa
William Grant (wgrant) on 2012-10-15
tags: added: package-copies
William Grant (wgrant) on 2015-09-12
Changed in launchpad:
assignee: nobody → William Grant (wgrant)
status: Triaged → In Progress
Launchpad QA Bot (lpqabot) wrote :
tags: added: qa-needstesting
Changed in launchpad:
status: In Progress → Fix Committed
William Grant (wgrant) on 2015-09-14
tags: added: qa-ok
removed: qa-needstesting
Colin Watson (cjwatson) on 2015-09-14
Changed in launchpad:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers