Este mensaje no ayudaba mucho...

Creo que hay try/except más interno que gestiona esa excepción, sacando la información por pantalla, pero no tengo tiempo de mirarlo...

El 12/12/12 08:55, Marcos Sánchez Provencio escribió:
Puede ser simplemente que el cliente cancela la recepción... Otra cosa es que eso te tumbe el servidor.

El 11/12/12 21:45, Jose Caballero escribió:
Hola,

python 2.6 en RHEL 6

tengo un codigo como este [1].
Esta dentro de un thread con la intencion de arrancar un servidor HTTP.
Suele funcionar bien casi el 100% del tiempo.
Sin embargo, de vez en cuando, me encuentro este Traceback en la consola [2]
Evidentemente tengo que trabajarme un poco la logica del thread.
Pero lo que me gustaria saber, y por eso pregunto aqui, es por que ese Traceback no es capturado por el bloque try - except que contiene a self.httpd.serve_forever() No lo captura, y por tanto tampoco veo en los ficheros de logs el mensaje "HTTP Server threw exception: [Errno 104] Connection reset by peer" Nota curiosa, si tengo en los logs otros mensajes, como "HTTP Server threw exception: [Errno 5] Input/output error", que vienen del mismo try - except.
Por que ese try - except es capaz de capturar el Err 5, pero no el 104?

Cualquier comentario y/o documentacion sobre esto sera mas que bienvenida.

Saludos,
Jose  (perdon por la ausencia de tildes)

-----------------------------------------------------------------------------------------------------------------------------

[1]


    def _init_socketserver(self):
        while not self.httpd:
            try:
self.log.debug("Attempting to bind to socket for HTTP server on port %s" % self.port) self.httpd = SocketServer.TCPServer(("", self.port), self.handler) self.log.info <http://self.log.info>("Initialized HTTP SocketServer port=%d, root=%s, index = %s" % (self.port,
self.docroot,
self.index))
            except Exception, e:
                self.log.warning("Socket server exception: %s" % str(e))
self.log.warning("Attempt to initialize HTTP server failed. Will wait 60s and try again.")
                time.sleep(60)

    def run(self):
self.log.info <http://self.log.info>("Initializing HTTP server...")
        self._init_socketserver()

        os.chdir(self.docroot)
        self.log.debug("Changing working dir to %s"% self.docroot)
        while not self.stopevent.isSet():
            try:
                self.httpd.serve_forever()
            except Exception, e:
self.log.error("HTTP Server threw exception: %s" % str(e))

-----------------------------------------------------------------------------------------------------------------------------

[2]


Traceback (most recent call last):
File "/usr/lib64/python2.6/SocketServer.py", line 283, in _handle_request_noblock
    self.process_request(request, client_address)
File "/usr/lib64/python2.6/SocketServer.py", line 309, in process_request
    self.finish_request(request, client_address)
File "/usr/lib64/python2.6/SocketServer.py", line 322, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/lib64/python2.6/SocketServer.py", line 617, in __init__
    self.handle()
  File "/usr/lib64/python2.6/BaseHTTPServer.py", line 329, in handle
    self.handle_one_request()
File "/usr/lib64/python2.6/BaseHTTPServer.py", line 323, in handle_one_request
    method()
  File "/usr/lib64/python2.6/SimpleHTTPServer.py", line 44, in do_GET
    f = self.send_head()
  File "/usr/lib64/python2.6/SimpleHTTPServer.py", line 81, in send_head
    return self.list_directory(path)
File "/usr/lib64/python2.6/SimpleHTTPServer.py", line 134, in list_directory
    self.send_response(200)
File "/usr/lib64/python2.6/BaseHTTPServer.py", line 382, in send_response
    (self.protocol_version, code, message))
  File "/usr/lib64/python2.6/socket.py", line 324, in write
    self.flush()
  File "/usr/lib64/python2.6/socket.py", line 303, in flush
    self._sock.sendall(buffer(data, write_offset, buffer_size))
error: [Errno 104] Connection reset by peer





_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a