Builder.rescueIfLost writes in a read-only transaction
Bug #906079 reported by
William Grant
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Launchpad itself |
Invalid
|
Critical
|
Unassigned |
Bug Description
As seen in http://
Related branches
lp:~allenap/launchpad/undo-read-only-transactions-in-buildmaster
- Gavin Panella (community): Approve
-
Diff: 1620 lines (+251/-470)13 files modifiedlib/lp/archiveuploader/tests/test_uploadprocessor.py (+2/-4)
lib/lp/buildmaster/interfaces/builder.py (+4/-6)
lib/lp/buildmaster/manager.py (+50/-78)
lib/lp/buildmaster/model/builder.py (+15/-28)
lib/lp/buildmaster/model/buildfarmjobbehavior.py (+33/-63)
lib/lp/buildmaster/model/packagebuild.py (+57/-91)
lib/lp/buildmaster/tests/test_builder.py (+7/-27)
lib/lp/buildmaster/tests/test_manager.py (+40/-127)
lib/lp/buildmaster/tests/test_packagebuild.py (+20/-10)
lib/lp/code/model/tests/test_sourcepackagerecipebuild.py (+8/-6)
lib/lp/services/database/transaction_policy.py (+2/-5)
lib/lp/soyuz/tests/test_binarypackagebuild.py (+4/-11)
lib/lp/translations/model/translationtemplatesbuildbehavior.py (+9/-14)
lp:~allenap/launchpad/builder-rescue-if-lost-ro-crash-bug-906079
- Brad Crittenden (community): Approve (code)
-
Diff: 1209 lines (+326/-209)7 files modifiedlib/lp/buildmaster/manager.py (+3/-2)
lib/lp/buildmaster/model/packagebuild.py (+1/-0)
lib/lp/buildmaster/testing.py (+27/-6)
lib/lp/buildmaster/tests/test_builder.py (+157/-93)
lib/lp/buildmaster/tests/test_manager.py (+93/-98)
lib/lp/services/database/tests/test_transaction_policy.py (+27/-10)
lib/lp/services/database/transaction_policy.py (+18/-0)
tags: |
added: qa-untestable removed: qa-needstesting |
Changed in launchpad: | |
status: | Fix Committed → In Progress |
tags: |
added: qa-bad removed: qa-needstesting |
Changed in launchpad: | |
status: | Fix Committed → In Progress |
Changed in launchpad: | |
assignee: | Gavin Panella (allenap) → nobody |
status: | In Progress → Triaged |
To post a comment you must log in.
The only ways this could happen would be:
i) the change was actually made in the same read-only transaction, or
ii) the change escaped from a read-write transaction through an exception path that wasn't handled through a commit or abort.