Queuebuilder does the wrong thing when PAS changes
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Launchpad itself |
Fix Released
|
High
|
Celso Providelo |
Bug Description
The queuebuilder has some incorrect logic in working out whether or not an existing build object satisfies the need for a build on an architecture.
The problem appears when:
- A build results in both some architecture specific and some architecture independent packages.
- A build for at least one arch has already been published.
- A change to PAS leads to a need for builds on more architectures than before.
At this point, the code incorrectly concludes that build X satisfies the need for a build of source package foo on arch bar, as there is already a binary package from source foo published on arch bar (the arch indep one). The previous code used to filter out *all* architecture independent published binaries when finding builds, but this relied on special handling in the queuebuilder to do the right thing for arch all source packages.
This special handling was removed during the refactoring, which lead to changes to the build finding method in SourcePackageRe
Longer term, we should kill the getBuildByArch method, and replace it with methods to locate builds of various types; callsites can then do what they know they want. Trying to do the right thing here for all cases is very fuzzy.
Changed in soyuz: | |
assignee: | nobody → malcolmcleaton |
importance: | Undecided → High |
status: | Unconfirmed → In Progress |
Changed in soyuz: | |
status: | Confirmed → In Progress |
Changed in soyuz: | |
status: | Fix Committed → Fix Released |
visibility: | private → public |
This is worth doing.