bzr retry logic should re-raise exception after max retries
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
PBuilderJenkins |
Fix Released
|
Critical
|
Francis Ginther |
Bug Description
The retry logic that was added for 0.36 absorbs the exception and returns a "None" to the caller. This causes bad things to happen because not all of the calling code was designed to handle this. Instead, just re-raise the last exception that was encountered and let it propagate up to the calling code.
From the included log, we see an example of this happening. A merge conflict is found as an exception and it is retried as expected. Unfortunately at the end, the build doesn't error out, it keeps going. Bad things happen later on.
[log]
INFO:pbuilderje
Building tree.
Retrieving 'bzr+ssh://<email address hidden>
Merging 'lp:mediaplayer-app' in to 'work'.
Not attempting to fix packaging branch ancestry, missing pristine tar data for version 0.20.5+
Text conflict in src/qml/player.qml
1 conflicts encountered.
bzr: ERROR: Conflicts from merge
ERROR:pbuilderj
Building tree.
Retrieving 'bzr+ssh://<email address hidden>
bzr: ERROR: Conflicts... aborting.
ERROR:pbuilderj
Building tree.
Retrieving 'bzr+ssh://<email address hidden>
bzr: ERROR: Conflicts... aborting.
ERROR:pbuilderj
INFO:pbuilderje
INFO:pbuilderje
DEBUG:pbuilderj
DEBUG:pbuilderj
DEBUG:pbuilderj
DEBUG:pbuilderj
DEBUG:pbuilderj
INFO:pbuilderje
INFO:pbuilderje
Related branches
- PS Jenkins bot: Approve (continuous-integration)
- Chris Gagnon (community): Approve
-
Diff: 93 lines (+17/-12)5 files modifieddebian/changelog (+6/-0)
pbuilderjenkins/hookshelper.py (+4/-3)
pbuilderjenkins/pbuilderjenkins.py (+4/-3)
tests/test_base_builder.py (+2/-4)
tests/test_create_ppa_hooks.py (+1/-2)
Changed in pbuilderjenkins: | |
status: | Fix Committed → Fix Released |
The fix should be to just re-raise the last exception.
Here's the same operation with the fix: nkins:Branch setup taking place using recipes 13.10.20130930. 1. enkins: Exception: Error while preparing from recipe: enkins: Exception: Error while preparing from recipe: enkins: Exception: Error while preparing from recipe: enkins: Error during build execution enkins: Error while preparing from recipe:
INFO:pbuilderje
Building tree.
Retrieving 'lp:~renatofilho/mediaplayer-app/fix-1233268' to put at 'work'.
Merging 'lp:mediaplayer-app' in to 'work'.
Not attempting to fix packaging branch ancestry, missing pristine tar data for version 0.20.5+
Text conflict in src/qml/player.qml
1 conflicts encountered.
bzr: ERROR: Conflicts from merge
ERROR:pbuilderj
Building tree.
Retrieving 'lp:~renatofilho/mediaplayer-app/fix-1233268' to put at 'work'.
bzr: ERROR: Conflicts... aborting.
ERROR:pbuilderj
Building tree.
Retrieving 'lp:~renatofilho/mediaplayer-app/fix-1233268' to put at 'work'.
bzr: ERROR: Conflicts... aborting.
ERROR:pbuilderj
ERROR:pbuilderj
ERROR:pbuilderj
pbuilder returned ERROR.
Build step 'Debian PBuilder NG' marked build as failure
There is no public Hudson instance configured for this project
Finished: FAILURE