tpools don't handle TimeoutErrors, so we need to.
Bug #758148 reported by
gholt
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Fix Released
|
Critical
|
gholt |
Bug Description
Specifically in the object replicator cases of tpool, but double-check the other areas too.
When a non-Exception based exception is raised, Eventlet's <0.9.13 tpool won't catch it and bad things happen (tpool exhaustion from what we've seen). Eventlet's Timeout subclasses BaseException, so it causes said bad things.
For now, we can just wrap calls to tpool to catch Timeout and do something sensible (like maybe raise an Exception). For the future, maybe we can make our own Timeout that subclasses Exception instead of BaseException.
Related branches
lp:~gholt/swift/timeout_baseexception
- Swift Core security contacts: Pending requested
-
Diff: 75 lines (+26/-5)2 files modifiedswift/obj/replicator.py (+20/-3)
swift/obj/server.py (+6/-2)
Changed in swift: | |
status: | In Progress → Fix Committed |
Changed in swift: | |
milestone: | none → 1.3.0 |
status: | Fix Committed → Fix Released |
To post a comment you must log in.