Incorrect DB-API wrapper exception type caching
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Storm |
Fix Released
|
Critical
|
Colin Watson |
Bug Description
I noticed this peculiar OOPS when pushing a Bazaar branch to Launchpad:
$ bzr push
Using saved push location: lp:~cjwatson/launchpad/remove-tickcount
Using default stacking branch /+branch-id/24637 at chroot-
<Fault 380: 'An unexpected error has occurred while updating a Launchpad branch. Please report a Launchpad bug and quote: OOPS-470576daeaa7e2b13e70874860fb2adc.'>
"<Fault 380: 'An unexpected error has occurred while updating a Launchpad branch. Please report a Launchpad bug and quote: OOPS-470576daeaa7e2b13e70874860fb2adc.'>"
Created new stacked branch referring to /+branch-id/24637.
The OOPS says:
Fault: <Fault -1: 'Unexpected Zope exception: LaunchpadTimeou
Traceback (most recent call last):
File "/srv/bazaar.
return func(*args, **kwargs)
File "/srv/bazaar.
data['id'], **info)
File "/srv/bazaar.
repository_
File "/srv/bazaar.
method_name, *args, **kwargs)
--- <exception caught here> ---
File "/srv/bazaar.
result = f(*args, **kw)
File "/srv/bazaar.
return getattr(
File "/usr/lib/
return self.__
File "/usr/lib/
verbose=
File "/usr/lib/
return self.single_
File "/usr/lib/
return self.parse_
File "/usr/lib/
return u.close()
File "/usr/lib/
raise Fault(*
xmlrpclib.Fault: <Fault -1: 'Unexpected Zope exception: LaunchpadTimeou
Initially I thought I'd just got unlucky with timing in a way I never had before, but then I looked more closely. psycopg2 turns the "could not serialize access due to concurrent update" error into TransactionRoll
I think that QueryCanceledError happens to be seen first, causing Database.
Related branches
- Simon Poirier (community): Approve
-
Diff: 58 lines (+26/-3)3 files modifiedNEWS (+8/-0)
storm/database.py (+3/-3)
storm/tests/databases/base.py (+15/-0)
Changed in storm: | |
status: | New → In Progress |
importance: | Undecided → Critical |
assignee: | nobody → Colin Watson (cjwatson) |
Changed in storm: | |
status: | In Progress → Fix Committed |
Changed in storm: | |
milestone: | none → 0.22 |
Fixed in Storm 0.22.