John; Could you put this in the collector....
Sure
Zope isnt 'crashing' here.... EINTR is an error that select can return under normal operation. The catch-and-retry is what asyncore *should* be doing - not a hack to cover up the problem.
Hmmmm. I dont think you we expect that from select. Any posix gurus listening?
Let me apologize and clarify. Zope *does* crash if there is no try/except around the select, at least in the way that I think of crashing. It needs to restart itself in any case. I am pretty sure EINTR *is* the problem, but when I add the try, it seems that a later call to accept() throws EWOULDBLOCK (??). This doesn't crash Zope, but brings down the FCGI and PCGI Servers. See the trace below. I added the print 'system.error' line inside the except block. system.error 4((4, 'Interrupted system call')) ------ 2001-08-16T13:16:01 ERROR(200) ZServer uncaptured python exception, closing channel <__repr__ (self) failed for object at dee7bc (addr='/tmp/zope.soc')> (exceptions.TypeError:unpack non-sequence [/u01/zope/lib/python2.1/asyncore.py|poll|101] [/u01/zope/lib/python2.1/asyncore.py|handle_read_event|383] [/u01/zope/Zope-2.4.0-src/ZServer/FCGIServer.py|handle_accept|697]) ------ 2001-08-16T13:16:01 ERROR(200) ZServer uncaptured python exception, closing channel <__repr__ (self) failed for object at dec4bc (addr='/u01/zope/Zope-2.4.0-src/var/pcgi.soc')> (exceptions.TypeError:unpack non-sequence [/u01/zope/lib/python2.1/asyncore.py|poll|101] [/u01/zope/lib/python2.1/asyncore.py|handle_read_event|383] [/u01/zope/Zope-2.4.0-src/ZServer/PCGIServer.py|handle_accept|380]) ------ 2001-08-16T13:16:01 ERROR(200) ZServer uncaptured python exception, closing channel <FTPServer listening :8021 at debcec> (exceptions.TypeError:unpack non-sequence [/u01/zope/lib/python2.1/asyncore.py|poll|101] [/u01/zope/lib/python2.1/asyncore.py|handle_read_event|383] [/u01/zope/Zope-2.4.0-src/ZServer/FTPServer.py|handle_accept|694]) ------ 2001-08-16T13:16:01 PROBLEM(100) ZServer warning: server accept() threw EWOULDBLOCK ------ 2001-08-16T13:16:01 ERROR(200) ZServer uncaptured python exception, closing channel <select-trigger (pipe) at 248024> (exceptions.OSError:[Errno 11] Resource temporarily unavailable [/u01/zope/lib/python2.1/asyncore.py|poll|101] [/u01/zope/lib/python2.1/asyncore.py|handle_read_event|389] [/u01/zope/Zope-2.4.0-src/ZServer/medusa/thread/select_trigger.py|handle_read|77] [/u01/zope/lib/python2.1/asyncore.py|recv|341] [/u01/zope/lib/python2.1/asyncore.py|recv|523]) -- John Ziniti Channing Laboratory Brigham and Women's Hospital 181 Longwood Avenue Brookline, MA 02115 john.ziniti@channing.harvard.edu