Comment 10 for bug 1347337

Revision history for this message
Amrith Kumar (amrith) wrote :

After speaking with Yuriy (YorikSar) and Ihar (ihrachyshka) we're leaning towards the following hypothesis.

something is screwed up in the monkey patching.

We shouldn't be getting an exception thrown from os.read() because it should've been monkey patched to some green thing.

Yet, flush appears to be monkey patched.

----

Sticking this little block of code

+ if not (eventlet.patcher.is_monkey_patched(all)):
+ f = open ('/tmp/trace.txt', 'a+')
+ traceback.print_stack(None, None, f)
+ f.close()
+

above where the execute() call is made showed that when the failure occurs, a backtrace is produced.

I can run the tests that are failing dozens of times successfully and get no backtrace. But when I do get a failure, I also get a backtrace.

There's more to this than meets the eye but we're leaning towards an issue with the way the monkey patching is working.

----

I tried a simple hack to force

eventlet.monkey_patch()

everywhere, where an import eventlet is done.

I can't seem to get the failure to occur with this.