bzr retry logic should re-raise exception after max retries

Bug #1236603 reported by Francis Ginther
6
This bug affects 1 person
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:pbuilderjenkins:Branch setup taking place using recipes
Building tree.
Retrieving 'bzr+ssh://<email address hidden>/~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+13.10.20130930.1.
Text conflict in src/qml/player.qml
1 conflicts encountered.
bzr: ERROR: Conflicts from merge
ERROR:pbuilderjenkins:Exception: Error while preparing from recipe:
Building tree.
Retrieving 'bzr+ssh://<email address hidden>/~renatofilho/mediaplayer-app/fix-1233268' to put at 'work'.
bzr: ERROR: Conflicts... aborting.
ERROR:pbuilderjenkins:Exception: Error while preparing from recipe:
Building tree.
Retrieving 'bzr+ssh://<email address hidden>/~renatofilho/mediaplayer-app/fix-1233268' to put at 'work'.
bzr: ERROR: Conflicts... aborting.
ERROR:pbuilderjenkins:Exception: Error while preparing from recipe:
INFO:pbuilderjenkins:Setting up hooks
INFO:pbuilderjenkins:Adding D09apt_update hook ("apt-get update" call)
DEBUG:pbuilderjenkins:Temporary hooks directory: /tmp/tmpVRInSR
DEBUG:pbuilderjenkins:Creating hook from D09add_ppa~ubuntu-unity~daily-build
DEBUG:pbuilderjenkins:Parsed into ubuntu-unity, daily-build
DEBUG:pbuilderjenkins:Adding hook: A10checklicenseheaders
DEBUG:pbuilderjenkins:Adding hook: D09apt_update
INFO:pbuilderjenkins:Running hooks
INFO:pbuilderjenkins:Chroot build starting...

Related branches

Revision history for this message
Francis Ginther (fginther) wrote :

The fix should be to just re-raise the last exception.

Here's the same operation with the fix:
INFO:pbuilderjenkins:Branch setup taking place using recipes
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+13.10.20130930.1.
Text conflict in src/qml/player.qml
1 conflicts encountered.
bzr: ERROR: Conflicts from merge
ERROR:pbuilderjenkins:Exception: Error while preparing from recipe:
Building tree.
Retrieving 'lp:~renatofilho/mediaplayer-app/fix-1233268' to put at 'work'.
bzr: ERROR: Conflicts... aborting.
ERROR:pbuilderjenkins:Exception: Error while preparing from recipe:
Building tree.
Retrieving 'lp:~renatofilho/mediaplayer-app/fix-1233268' to put at 'work'.
bzr: ERROR: Conflicts... aborting.
ERROR:pbuilderjenkins:Exception: Error while preparing from recipe:
ERROR:pbuilderjenkins:Error during build execution
ERROR:pbuilderjenkins:Error while preparing from recipe:
pbuilder returned ERROR.
Build step 'Debian PBuilder NG' marked build as failure
There is no public Hudson instance configured for this project
Finished: FAILURE

Changed in pbuilderjenkins:
status: New → In Progress
importance: Undecided → Critical
assignee: nobody → Francis Ginther (fginther)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

Fix committed into lp:pbuilderjenkins at revision 123, scheduled for release in pbuilderjenkins, milestone Unknown

Changed in pbuilderjenkins:
status: In Progress → Fix Committed
Changed in pbuilderjenkins:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.