P-a-s ignored when accepting non-sync uploads from queue

Bug #564759 reported by LaMont Jones
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Launchpad itself
Won't Fix
Low
Unassigned

Bug Description

The final line of /srv/launchpad.net/builddmaster/Packages-arch-specific says:

%glib2.0: !sparc # temporary workaround for buildd-killer

and yet the most recent upload of glib2.0 ( https://edge.launchpad.net/ubuntu/+source/glib2.0/2.24.0-0ubuntu2 ) generated that hateful build record. This should not happen.

Revision history for this message
Julian Edwards (julian-edwards) wrote : Re: PaS says not to build glib2.0 on sparc, but it's built anyway

Lamont has a workaround on the buildd side for now.

summary: - PaS parsing error
+ PaS says not to build glib2.0 on sparc, but it's built anyway
Changed in soyuz:
status: New → Triaged
importance: Undecided → Low
tags: added: soyuz-build
Revision history for this message
Colin Watson (cjwatson) wrote :

This happens when the distroseries is frozen, because PackageUpload._acceptNonSyncFromQueue calls pub_source.createMissingBuilds without a pas_verify argument. By contrast, PackageUpload.acceptFromUploader does pass in pas_verify, which is why we only notice this kind of thing sporadically.

summary: - PaS says not to build glib2.0 on sparc, but it's built anyway
+ P-a-s ignored when accepting non-sync uploads from queue
Revision history for this message
Colin Watson (cjwatson) wrote :

So, I can find no legitimate reason for not passing a P-a-s verifier to createMissingBuilds. There are XXX call sites right now which do not do so:

  PackageCloner._create_missing_builds (bug 243252)
  PackageUpload._acceptNonSyncFromQueue (this bug)
  _do_direct_copy (bug 869308)
  InitializeDistroSeries (no bug, but only affects rebuilds done without the cloner, so quite possibly nobody's noticed)

When a pas_verify instance is passed, it's entirely formulaic:

  BuildDaemonPackagesArchSpecific(config.builddmaster.root, distroseries)

Two of these cases (PackageUpload._acceptNonSyncFromQueue and _do_direct_copy) are only operating on a single source upload. For these, I think the fix that would make the most sense would be for createMissingBuilds itself to create a P-a-s parsing instance if it wasn't passed one. I don't think this is realistically going to make things any worse, and it should allow us to remove a bit of duplicated code.

The other two cases involve processing potentially a large number of source packages, so we shouldn't rely on createMissingBuilds implicitly creating a pas_verify instance. In those cases, it's only a line or two of code to create an appropriate instance up-front.

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

The main reason it's not there is that the accept-from-queue code is run on appservers, and they don't have a local copy of P-a-s.

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

Ah, that sucks. Do we need to model P-a-s in the database (it is kind of projected to go away eventually, but not on any kind of short-term timescale) or would it be better to give the appservers local copies of P-a-s?

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

Bug 734782, I see.

Revision history for this message
Julian Edwards (julian-edwards) wrote :

Indeed, I think that bug should be fixed which will then be 99% of the work of fixing this one.

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

P-a-s is no longer.

Changed in launchpad:
status: Triaged → Won't Fix
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.