wsgi.Server() starts but is broken on osx (test_multiprocessing never ends)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Glance |
Fix Released
|
Medium
|
Patrick Mezard |
Bug Description
$ ./run_tests.sh glance.
never ends on OSX (10.6, macports python 2.7.3). The process loops endlessly, filling syslog with tracebacks ending with:
Traceback (most recent call last):
File "/Users/
server.wait()
File "/Users/
self.
File "/Users/
self.
File "/Users/
self.
File "/Users/
eventlet.
File "/Users/
mod = __import_
File "/Users/
EXC_MASK = select.POLLERR | select.POLLHUP
AttributeError: 'module' object has no attribute 'POLLERR'
This is obviously caused by "poll" API being not available on OSX and in python. The real problem is "poll" hub is being selected once the child process forked (probably to avoid polluting the main thread eventlet configuration), but the error is treated like any other and childs keep being respawned with warnings filling syslog.
Waiting for better suggestions, I will start working on a two steps solution:
- Adding a check_eventlet() which forks, try to use the eventlet hub and return 0 on success. wsgi.Server() will call it before spawning workers and bail out on error.
- Introduce a configuration entry to change the default hub, could be used at least for the tests
Comments?
Changed in glance: | |
importance: | Undecided → Critical |
milestone: | none → folsom-1 |
Changed in glance: | |
importance: | Critical → High |
milestone: | folsom-1 → folsom-2 |
Changed in glance: | |
importance: | High → Medium |
milestone: | folsom-2 → folsom-3 |
Changed in glance: | |
status: | Fix Committed → Fix Released |
Changed in glance: | |
milestone: | folsom-2 → 2012.2 |
Fix proposed to branch: master /review. openstack. org/7172
Review: https:/