Some PPAs have duplicated builds

Bug #682692 reported by Julian Edwards
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Launchpad itself
Triaged
High
Unassigned

Bug Description

See https://launchpad.net/~openswan/+archive/openswan-testing, "openswan - 1:2.6.32~rc2-1xelerance1" has got two i386 builds, one was pending because it could not be published.

Also see https://launchpad.net/~ferramroberto/+archive/varie, "lib32qtwebkit4 - 2.0.0~0ubuntu1-1~lffl~maverick~ppa" has got two amd64 builds.

In both cases the package appears to have been copied from another PPA and some deletions have taken place. I have requested more info from the owner of the openswan PPA.

tags: added: soyuz-build
Changed in soyuz:
status: New → Triaged
importance: Undecided → High
tags: added: soyuz-publisher
Revision history for this message
Julian Edwards (julian-edwards) wrote :

Unfortunately the owner could not remember exactly what he did.

Revision history for this message
William Grant (wgrant) wrote :

I investigated the openswan case, and came up with this timeline:

 - Source uploaded to origin, amd64 built, i386 build stuck in queue
 - 1st copy: 00:27:24, source and amd64 copied, destination i386 build created due to missing i386 binaries
 - 1st publish: 00:38:33
 - Origin i386 build started: 00:52:11
 - Origin i386 build finished: 01:00:11
 - Origin i386 build uploaded and published
 - Destination i386 build started: 01:49:54
 - Destination i386 build finished: 01:56:45
 - Destination i386 build uploaded: 01:57:12
 - 1st copy deleted: 02:11:32
 - 2nd copy: 02:11:50, source, i386, amd64 copied, despite conflicting i386 build
 - Destination i386 build published: 02:15:22
 - 2nd publish: 02:17:59

Normally the copy checker will forbid a copy if a conflicting source has pending, building or unpublished builds. The last case is what we have here -- the conflicting build is sitting in the Accepted queue. It's handled by this bit of getBuildStatusSummariesForSourceIdsAndArchive:

            if (source_pub.status in active_publishing_status and
                    summary['status'] == BuildSetStatus.FULLYBUILT and
                    not source_pub.archive.is_copy):
                need_unpublished.add(source_pub)

The active_publishing_status check is the problem. The source had been deleted moments before the copy, so the build status was summarised as FULLYBUILT, and the copy was permitted. I don't know why the active_publishing_status check is there, but it looks wrong to me.

Revision history for this message
William Grant (wgrant) wrote :

To reproduce:

 1) Copy source-only from one PPA to another.
 2) Wait for builds in destination to finish and be uploaded, but not yet be published.
 3) Try and fail to recopy source, this time with binaries.
 4) Delete copied source from destination.
 5) Recopy source and binaries, successfully this time.
 6) Notice duplicate builds.

tags: added: boobytrap
tags: added: bugjam2010
William Grant (wgrant)
Changed in launchpad:
status: Triaged → In Progress
assignee: nobody → William Grant (wgrant)
William Grant (wgrant)
Changed in launchpad:
status: In Progress → Triaged
William Grant (wgrant)
Changed in launchpad:
assignee: William Grant (wgrant) → nobody
tags: added: soyuz-publish
removed: soyuz-publisher
William Grant (wgrant)
tags: added: package-copies
Revision history for this message
Colin Watson (cjwatson) wrote :

This came up today:

  https://launchpad.net/~channelgrabber/+archive/ppa/+sourcepub/3555026/+listing-archive-extra

However, the builds of the copied source had finished a couple of weeks ago, so it doesn't seem as simple as the built-but-unpublished case William describes.

Revision history for this message
Colin Watson (cjwatson) wrote :

The user who copied this first copied without binaries, then deleted the copy, then copied with binaries, which very likely has something to do with it.

Revision history for this message
William Grant (wgrant) wrote :

Crucially, the builds from the original copy failed, so there were no conflicting binaries.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.