Filedescriptor leak and zombie processes
Bug #718390 reported by
Soren Hansen
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
High
|
Soren Hansen |
Bug Description
Something seems to be wrong with the way we run subprocesses. After running a lot of tests, everything started failing, because I had run out of file descriptors. Looking at the process table there were a bajillion zombie shells, so apparantly, we're not reaping the child processes properly. :-/
Related branches
lp://staging/~soren/nova/eventlet-subprocess
- Vish Ishaya (community): Approve
- Thierry Carrez (community): Approve
- Jay Pipes (community): Approve
-
Diff: 19 lines (+1/-1)1 file modifiednova/utils.py (+1/-1)
Changed in nova: | |
status: | New → In Progress |
assignee: | nobody → Soren Hansen (soren) |
Changed in nova: | |
importance: | Undecided → High |
Changed in nova: | |
status: | In Progress → Fix Committed |
tags: | added: bexar-post-release |
Changed in nova: | |
milestone: | none → 2011.2 |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
Turns out to be an eventlet problem.
Eventlet monkey patches os, so that wait is called with the NOHANG flag in the standard python subprocess module, but it wasn't built for that, so if the timing is right, we'll call wait before the child has terminated, and then it never gets reaped. The solution is to use eventlet's subprocess module instead, but that's broken for us: https:/ /bitbucket. org/which_ linden/ eventlet/ issue/77/ subprocess- module- fails-if- os-module- is