cannot specify specific chroot for a build
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Launchpad itself |
Fix Released
|
High
|
Colin Watson |
Bug Description
When we bootstrap a package (due to circular dependencies), we eventually wind up putting all of the affected architecture's buildds on manual while we upload a polluted chroot with the build-deps preinstalled and launch the build of the package we're bootstrapping, then restoring the pristine chroot. This leaves us with an exposure to other buildd admins "helping" by putting buildds back on manual, or PPA builders showing up (coming back from their other uses) and being on auto.
The switching of many builders to manual and back is currently done using SQL directly, which is a badness. The exposure to buildds magically arriving on auto is treated as ignorable, since we have no current solution to the issue.
There should be a button (or api entry point) that allows me to put all buildds of an architecture on manual. And having done so, there should be a way for a launchpad-
Diagnosis
=========
* Allowing a specific chroot to be used for a build would short-circuit all the shenanigans and allow any builder to be used. OTOH it would also allow weaker auditability so probably needs to be a admin (that is ducky) function.
Related branches
- William Grant (community): Approve (db)
- Stuart Bishop: Pending (db) requested
-
Diff: 14 lines (+10/-0)1 file modifieddatabase/schema/patch-2209-72-0.sql (+10/-0)
- Launchpad code reviewers: Pending requested
-
Diff: 29 lines (+20/-0)2 files modifieddatabase/schema/patch-2209-71-0.sql (+10/-0)
database/schema/patch-2209-72-0.sql (+10/-0)
- William Grant (community): Approve (code)
-
Diff: 259 lines (+126/-9)7 files modifiedlib/lp/security.py (+19/-1)
lib/lp/soyuz/configure.zcml (+6/-2)
lib/lp/soyuz/interfaces/archive.py (+2/-2)
lib/lp/soyuz/interfaces/binarypackagebuild.py (+21/-2)
lib/lp/soyuz/model/binarypackagebuild.py (+17/-1)
lib/lp/soyuz/stories/webservice/xx-builds.txt (+1/-0)
lib/lp/soyuz/tests/test_binarypackagebuild.py (+60/-1)
- William Grant (community): Approve (code)
-
Diff: 50 lines (+24/-2)2 files modifiedlib/lp/soyuz/adapters/archivedependencies.py (+9/-2)
lib/lp/soyuz/doc/archive-dependencies.txt (+15/-0)
tags: | added: canonical-losa-lp |
Changed in soyuz: | |
status: | New → Confirmed |
summary: |
- Need a better single-threading control options for buildds + cannot prevent all builds on a given arch (e.g. while bootstrapping a + circular dependency) |
summary: |
- cannot prevent all builds on a given arch (e.g. while bootstrapping a - circular dependency) + cannot specify specific chroot for a build |
description: | updated |
Changed in launchpad: | |
status: | Fix Committed → In Progress |
tags: |
added: qa-ok removed: qa-needstesting |
Changed in launchpad: | |
status: | Fix Committed → Fix Released |
The builders are exposed on the API and you can set "manual" there for any as you see fit. You can also bump the priority of a particular build to force it to be next in the queue using the API.
I don't think there's anything else we need to do for you to be able to do this, is there?