merge-proposal-jobs OOPS-1628MPJ1 in cancel_deletion when merging into empty tree

Bug #595328 reported by Steve McInerney
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Bazaar
Fix Released
Low
Aaron Bentley
Launchpad itself
Fix Released
Critical
Unassigned

Bug Description

 KeyError: None

    Traceback (most recent call last):
  Module lp.services.job.runner, line 189, in runJobHandleError
    self.runJob(job)
  Module lp.services.job.runner, line 160, in runJob
    job.run()
  Module lp.code.model.branchmergeproposaljob, line 337, in run
    self.branch_merge_proposal)
  Module lp.code.model.diff, line 338, in fromBranchMergeProposal
    prerequisite_branch)
  Module lp.code.model.diff, line 118, in mergePreviewFromBranches
    merge_target, cleanups)
  Module lp.code.model.diff, line 149, in _getMergedTree
    transform = merger.make_preview_transform()
  Module bzrlib.merge, line 788, in make_preview_transform
  Module bzrlib.cleanup, line 122, in run_simple
  Module bzrlib.cleanup, line 156, in _do_with_cleanups
  Module bzrlib.merge, line 793, in _make_preview_transform
  Module bzrlib.merge, line 821, in _compute_transform
  Module bzrlib.merge, line 1044, in fix_root
  Module bzrlib.transform, line 323, in cancel_deletion
KeyError: None
https://lp-oops.canonical.com/oops.py/?oopsid=1628MPJ1

or, https://pastebin.canonical.com/33566/

<poolie> i wonder if this is bad exception cleanup code
<poolie> yes it probably is
<poolie> this is a knock on error from some other error (possibly ioerorr, or interrupt)

Erroring creating a preview tree for merging
  lp:~ubuntu-drupal-devs/ubuntu-website/light-drupal-theme-v6.6.0
into
  lp:~ubuntu-website-community/ubuntu-website/light-drupal-theme

Related branches

Tim Penhey (thumper)
description: updated
tags: added: code-review oops
Changed in launchpad-code:
status: New → Triaged
importance: Undecided → High
Revision history for this message
Robert Collins (lifeless) wrote :

This needs someone to examine the merge-proposal-jobs code and exclude it from consideration, for the bzr task to be marked confirmed.

Changed in bzr:
status: New → Incomplete
description: updated
Revision history for this message
Tim Penhey (thumper) wrote :

I'm wondering what we should be doing in the code side of things.

Perhaps we need to capture the failure and retry the job again. Jobs have this facility, but we aren't really using it yet... perhaps we should be.

If we are going to retry, we should integrate into the base job class a max_retries.

Revision history for this message
Aaron Bentley (abentley) wrote :

I think we should reserve retries for situations where we have some reason to expect that it would succeed if we ran it again, e.g. a connectivity problem. I don't see any reason to believe that here.

Changed in launchpad:
importance: High → Critical
Revision history for this message
Aaron Bentley (abentley) wrote :

The most recent instance, OOPS-1979MPJ1 appears to be due to attempting to perform a merge into the empty tree. While bzr may not do this, the failure is clearly a bug in bzrlib caused by the merge code assuming that the tree has a root.

Changed in bzr:
importance: Undecided → Low
status: Incomplete → Triaged
Aaron Bentley (abentley)
Changed in bzr:
assignee: nobody → Aaron Bentley (abentley)
Aaron Bentley (abentley)
Changed in bzr:
status: Triaged → In Progress
Martin Pool (mbp)
summary: - merge-proposal-jobs OOPS-1628MPJ1
+ merge-proposal-jobs OOPS-1628MPJ1 in cancel_deletion when merging into
+ empty tree
Vincent Ladeuil (vila)
Changed in bzr:
milestone: none → 2.4b4
status: In Progress → Fix Released
Revision history for this message
Данило Шеган (danilo) wrote :

Is there anything we've got to do for LP for this bug to be resolved (other than potentially upgrade to latest bzr if we haven't already)?

Revision history for this message
Aaron Bentley (abentley) wrote :

Upgrading bzr was all that was required.

Changed in launchpad:
status: Triaged → 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.