The code looks okay. If you have () then the indention is ignored. The problem is the 'write' method I think!?! But I do not know enough about this code to make further statements. stephan On Fri, 13 Aug 1999, you wrote:
Hi all.
I'm using the latest stable release in Linux 2.0.37 and Zope crashed three times in less than 24 hours. My logs read as follows:
# cat serve.log Publishing module Main Serving HTTP on port 9673 ... ---------------------------------------- Exception happened during processing of request from ('200.211.x.x', 1132) ----------------------------------------
# cat serve.errors 200.211.x.x - - [13/Aug/1999 15:27:35] "GET /abc/ HTTP/1.1" 200 - 200.211.x.x - - [13/Aug/1999 15:27:36] "GET /abc/Images/advert.gif HTTP/1.1" 200 - Traceback (innermost last): File "ZopeHTTPServer/ZopeHTTPServer.py", line 388, in handle_request self.process_request(request, client_address) File "lib/python1.5/SocketServer.py", line 239, in process_request self.finish_request(request, client_address) File "lib/python1.5/SocketServer.py", line 243, in finish_request self.RequestHandlerClass(request, client_address, self) File "lib/python1.5/SocketServer.py", line 362, in __init__ self.handle() File "lib/python1.5/BaseHTTPServer.py", line 258, in handle method() File "ZopeHTTPServer/ZopeHTTPServer.py", line 292, in do_GET self.publish_module() File "ZopeHTTPServer/ZopeHTTPServer.py", line 305, in publish_module publish_module( File "lib/python/ZPublisher/Publish.py", line 893, in publish_module if response: stdout.write(response) File "ZopeHTTPServer/ZopeHTTPServer.py", line 240, in write self.handler.wfile.write(self.data[:start]+ IOError: (32, 'Broken pipe')
Note: isn't something strange here? The logs seems to be switched. "serve.log" have only a error message and "sever.errors" have the entire access log.
ZopeHTTPServer.py reads on line 240 (*)
def write(self,data): if self.latch: self.handler.wfile.write(data) else: self.data=self.data+data start=string.find(self.data,"Status: ") if start != -1: end=string.find(self.data,"\n",start) status=self.data[start+8:end] code, message=tuple(string.split(status," ",1)) self.handler.send_response(string.atoi(code),message) self.handler.wfile.write(self.data[:start]+ self.data[end+1:]) ---> (*) self.latch=1
I don't do Python but, to my knowledge, spaces are significant, aren't they? In this case the source was only untared and not modified in any way. It looks that a newline is the problem here, am I right?
[]s
-- Henrique Almeida | GCS !a CS++>$ UL+++ Univ Federal de Uberlandia | W++ N+ Y+ PGP+ t++@ Uberlandia, MG, Brasil | 5+++ X+ tv- b++ D++ almeida@uberlandia.org | e+>++
_______________________________________________ Zope maillist - Zope@zope.org http://www.zope.org/mailman/listinfo/zope
(To receive general Zope announcements, see: http://www.zope.org/mailman/listinfo/zope-announce
For developer-specific issues, zope-dev@zope.org - http://www.zope.org/mailman/listinfo/zope-dev ) -- Stephan Richter iXL - Software Designer and Engineer