Bug tasks nominations can be accepted and declined simultaneously

Bug #307269 reported by Steve Beattie
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Launchpad itself
Fix Released
Critical
William Grant
Declined for 2.1 by Robert Collins
Ubuntu
Hardy
Won't Fix
Undecided
Unassigned

Bug Description

To reproduce:

1. Get someone to nominate a bug for release
2. Hit accept, then hit stop ~1 second afterwards
3. Hit decline.
4. Note that the task you used is both accepted and declined.

LP oopses if you then try to approve one of these tasks, which has been both approved and declined.

Related branches

Revision history for this message
Sarah Kowalik (hobbsee-deactivatedaccount) wrote :

This is from accepting, hitting stop, then hitting decline for the nomination.

description: updated
Revision history for this message
Sarah Kowalik (hobbsee-deactivatedaccount) wrote :

Note: this doesn't happen when hitting decline, stop, accept.

-------------------------

Oops!

Sorry, something just went wrong in Launchpad.

We’ve recorded what happened, and we’ll fix it as soon as possible. Apologies for the inconvenience.

(Error ID: OOPS-1076EC181)

(when trying to approve the dapper bug task)

Revision history for this message
William Grant (wgrant) wrote :

Both issues observed here (the duplicate launchpad/trunk tasks, and the declined distroseries nominations where distroseries tasks exist already) are possible because BugNomination.{approve,decline} do not respect their documentation from IBugNomination. IBugNomination states that approving an approved nomination is a no-op, and declining an approved one raises an exception. However, the implementation in BugNomination doesn't perform those checks.

This means that one can decline a nomination after it has been approved, resulting in those extra distroseries nominations. A further approval of a distroseries nomination crashes because it would create a duplicate bugtask. However, there is a missing UNIQUE index (bug #417636) which allows an approved then declined productseries nomination to be successfully approved again, creating the duplicate launchpad/trunk task as seen above.

I've fixed BugNomination.{approve,reject} to make these situations impossible in my bug nomination export branch, but an attempt to decline an existing task through the web UI will start to OOPS.

William Grant (wgrant)
tags: added: motu oops
Curtis Hovey (sinzui)
Changed in malone:
status: New → Triaged
importance: Undecided → Low
Changed in launchpad:
importance: Low → Critical
William Grant (wgrant)
Changed in launchpad:
assignee: nobody → William Grant (wgrant)
status: Triaged → In Progress
Revision history for this message
Launchpad QA Bot (lpqabot) wrote :
tags: added: qa-needstesting
Changed in launchpad:
status: In Progress → Fix Committed
William Grant (wgrant)
tags: added: qa-ok
removed: qa-needstesting
William Grant (wgrant)
Changed in launchpad:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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