race condition merging dupe account with multiple email addresses
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Launchpad itself |
Fix Released
|
High
|
Curtis Hovey |
Bug Description
Steps to reproduce:
1. Logged-in as FooBar open: http://
2. Fill in dupe account: salgado
3. Click Submit, you'll be redirected to: http://
4. Open in another tab: http://
5. Remove the unconfirmed email address: <email address hidden>
6. Back to the tab of step 3, select both emails @canonical and @ubuntu
7. Click submit
8. OOPS-893EC36
Module canonical.
assert emailaddress in self.dupeemails
AssertionError
In the process of fixing this bug, please make the AssertionError exception value more informative. Something like:
assert emailaddress in self.dupeemails, "%s not found in %s" % (emailddress.email, [e.email for e in self.dupeemails])
Related branches
- Michael Nelson (community): Approve (code)
-
Diff: 115 lines (+84/-2)2 files modifiedlib/lp/registry/browser/peoplemerge.py (+9/-2)
lib/lp/registry/browser/tests/test_peoplemerge.py (+75/-0)
Changed in launchpad: | |
importance: | Undecided → Low |
status: | New → Confirmed |
Changed in launchpad-registry: | |
status: | Confirmed → Triaged |
tags: |
added: merge-deactivate removed: registry |
Changed in launchpad-registry: | |
status: | In Progress → Fix Committed |
tags: |
added: qa-ok removed: qa-needstesting |
Changed in launchpad-registry: | |
status: | Fix Committed → Fix Released |
The assert is made before the form starts doing work. The assert can be changed to a sanity check that returns early if it is not safe to precede. The step should show a form error to explain why the user needs to reselect the email addresses.