ZServer uncaptured python exception
Hi all, I'm using Zope 2.6.2 (binary release, python 2.1, linux2-x86), python 2.1.3, linux2), RedHat 8. This server has been working like a charme for the past 2 years I've configured a new 2.7 server on a new hardware on a SuSe 9.0 professional and we are slightly testing and moving applications from one server to the other (there is not only zope on the server, but also apache, mysql, qmail, mailman) This move will take a while and this week a few exceptions have been hangging this "old" Zope server (see log below). I'm in contact with the zope developpers working on this server to try to understand the reason of those exceptions but any help would be greatly appreciated Regards, Gaël Zope's last rows before it hangs: 2004-06-15T17:43:55 PROBLEM(100) Localizer method "select_language" raised an exception. ------ 2004-06-15T17:43:55 PROBLEM(100) Localizer method "select_language" raised an exception. ------ 2004-06-15T20:06:56 ERROR(200) ZServer uncaptured python exception, closing channel <ZServer.HTTPServer.zhttp_channel connected 62.43.85.73:1642 at 0x98d4674 channel#: 20700 requests:> (socket.error:(110, 'Connection timed out') [/usr/local/zope/ZServer/medusa/asynchat.py|handle_read|82] [/usr/local/zope/ZServer/medusa/http_server.py|recv|423] [/usr/local/zope/ZServer/medusa/asyncore.py|recv|361]) And a find . -exec grep 'ZServer uncaptured python' {} \; on the Zope's log 2004-06-08T14:57:50 ERROR(200) ZServer uncaptured python exception, closing channel <ZServer.HTTPServer.zhttp_channel connected 213.60.176.239:42050 at 0xa17f764 channel#: 30640 requests:> (socket.error:(110, 'Connection timed out') [/usr/local/zope/ZServer/medusa/asynchat.py|handle_read|82] [/usr/local/zope/ZServer/medusa/http_server.py|recv|423] [/usr/local/zope/ZServer/medusa/asyncore.py|recv|361]) 2004-06-08T14:59:24 ERROR(200) ZServer uncaptured python exception, closing channel <ZServer.HTTPServer.zhttp_channel connected 213.60.176.239:42204 at 0x97bfa94 channel#: 30650 requests:> (socket.error:(110, 'Connection timed out') [/usr/local/zope/ZServer/medusa/asynchat.py|handle_read|82] [/usr/local/zope/ZServer/medusa/http_server.py|recv|423] [/usr/local/zope/ZServer/medusa/asyncore.py|recv|361]) 2004-06-09T03:03:53 ERROR(200) ZServer uncaptured python exception, closing channel <ZServer.HTTPServer.zhttp_channel connected 213.96.1.165:51957 at 0x942269c channel#: 35023 requests:> (socket.error:(110, 'Connection timed out') [/usr/local/zope/ZServer/medusa/asynchat.py|handle_read|82] [/usr/local/zope/ZServer/medusa/http_server.py|recv|423] [/usr/local/zope/ZServer/medusa/asyncore.py|recv|361]) 2004-06-14T09:40:39 ERROR(200) ZServer uncaptured python exception, closing channel <ZServer.HTTPServer.zhttp_channel connected 203.190.0.236:1076 at 0x9889294 channel#: 1024 requests:> (socket.error:(110, 'Connection timed out') [/usr/local/zope/ZServer/medusa/asynchat.py|handle_read|82] [/usr/local/zope/ZServer/medusa/http_server.py|recv|423] [/usr/local/zope/ZServer/medusa/asyncore.py|recv|361]) 2004-06-15T20:06:56 ERROR(200) ZServer uncaptured python exception, closing channel <ZServer.HTTPServer.zhttp_channel connected 62.43.85.73:1642 at 0x98d4674 channel#: 20700 requests:> (socket.error:(110, 'Connection timed out') [/usr/local/zope/ZServer/medusa/asynchat.py|handle_read|82] [/usr/local/zope/ZServer/medusa/http_server.py|recv|423] [/usr/local/zope/ZServer/medusa/asyncore.py|recv|361])
g.lams@itcilo.org wrote at 2004-6-16 11:17 +0200:
... this week a few exceptions have been hangging this "old" Zope server (see log below). ... Zope's last rows before it hangs:
2004-06-15T17:43:55 PROBLEM(100) Localizer method "select_language" raised an exception.
I do not know what this means but "PROBLEM" is a synonym for "WARNING" and warnings usually do not cause handing...
... ------ 2004-06-15T20:06:56 ERROR(200) ZServer uncaptured python exception, closing channel <ZServer.HTTPServer.zhttp_channel connected 62.43.85.73:1642 at 0x98d4674 channel#: 20700 requests:> (socket.error:(110, 'Connection timed out') [/usr/local/zope/ZServer/medusa/asynchat.py|handle_read|82] [/usr/local/zope/ZServer/medusa/http_server.py|recv|423] [/usr/local/zope/ZServer/medusa/asyncore.py|recv|361])
The above exception report could be seen as an indication that your Zope has been temporarily not reponding. Once, you saw the exception, Zope should have been responsive again. Communication with HTTP clients is performed by a single thread (the ZServer/medusa thread) using "asyncore". "asyncore" asynchronously manages a set of so called "channels". It waits in parallel (using "select") until any of the "channels" is "ready" (to read or write). Then it handles all ready channels synchronously. The error above means: a channel reported "I am ready to read" but the actual reading failed with a "connection timed out". This should never happen! While the channel was waiting (for the timeout), Zope was unable to accept further requests, as waiting was performed synchronously by the single ZServer/medusa thread. I am not sure how the above szenario can happen. As I understand the specification (of "select/recv"), it is impossible. Maybe, a bug in your operating systems TCP/select/recv implementation? -- Dieter
participants (2)
-
Dieter Maurer -
g.lams@itcilo.org