give-back-loop detection would be desireable
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Launchpad itself |
Fix Released
|
Low
|
William Grant |
Bug Description
So, the auto-give-back code I wrote on the buildd side lets me do neat things like, for instance, scan a log and see if anything in the build segfaulted, and give-back the build. This is great, but I don't fully use that feature, because if the segfault is genuine (ie: a real bug, not cosmic rays), the package will just go from building to needs-build to building to needs-build over and over again and never fail.
The build table should be extended to keep a give-back count and increment that on each give-back of a package. When the count reaches some arbitrary number, the package should be failed (or put in a new "give-back-loop" state, so it's more obvious), and the counter should be reset to zero. That way, I can invesitgate the bug and fix it, rather than being blindly unaware of a package that's been retrying for 2 months. :)
Related branches
- Celso Providelo (community): Approve
-
Diff: 732 lines (+163/-270)11 files modifiedlib/lp/buildmaster/interfaces/builder.py (+0/-6)
lib/lp/buildmaster/manager.py (+3/-1)
lib/lp/buildmaster/model/builder.py (+0/-6)
lib/lp/buildmaster/model/buildfarmjobbehaviour.py (+46/-120)
lib/lp/buildmaster/tests/test_builder.py (+0/-7)
lib/lp/buildmaster/tests/test_buildfarmjobbehaviour.py (+51/-32)
lib/lp/buildmaster/tests/test_manager.py (+15/-13)
lib/lp/code/model/recipebuilder.py (+1/-2)
lib/lp/soyuz/tests/test_binarypackagebuildbehaviour.py (+0/-28)
lib/lp/translations/model/translationtemplatesbuildbehaviour.py (+35/-47)
lib/lp/translations/tests/test_translationtemplatesbuildbehaviour.py (+12/-8)
Changed in soyuz: | |
status: | Unconfirmed → Confirmed |
Changed in launchpad: | |
assignee: | nobody → William Grant (wgrant) |
status: | Triaged → In Progress |
Changed in launchpad: | |
status: | Fix Committed → Fix Released |
I believe we have a generic 'too many failures' mode now, which would suffice.