bug in the Python bug tracker at SF. I think he's right that asyncore should catch EINTR and retry. The right thing, in probably every case, is to retry the select. Thus, asyncore should be doing it and not burdening every application (like Zope) with the need to add a try/except.
I actually modified asyncore.py in Python :), not in Zope/medusa sources.
Did you retry the select() or did you do something else?
Orginally, I failed to understand what I needed to do. In my first attempt, I just caught EINTR and pretended nothing went wrong :) I think this is what caused the EWOULBLOCK problems. My second version (simplifed by Toby) loops until we don't catch EINTR. This one has been working very well for three days.
Is it easy to reproduce this error? Could you isolate a test case that I could run locally? Also, what platform are you running on?
The most reliable way I've found of getting it is to install the DCO2 Product for Oracle and try to create a DB Connection. That failed with this error every single time -- but that may not be an option for you. Other than that, the errors were unpredictable, but pretty common just by clicking around the ZMI. Platform is SunOS 5.8/Sparc with Python-2.1.1 and Zope-2.4.0 -- John Ziniti Channing Laboratory Brigham and Women's Hospital 181 Longwood Avenue Brookline, MA 02115 john.ziniti@channing.harvard.edu