Fallo de segmentación

"Jorge Romeo" <[email protected]>
Newsgroups gmane.comp.python.general.castellano
Message-ID <[email protected]>
Hola expertos,
 
a ver si logro explicarme bien porque estoy metido en un lío bastante molesto...
 
Estoy trabajando en una aplicación de recogida de datos de proceso trabajando con Python y con postgres 8.3 como base, usando para conectarme psycopg2.
 
El programa está terminado y funciona bien, pero de vez en cuando aborta, dando como única explicación "Fallo de Segmentación". Esto es extremadamente raro en Python, ya que es un lenguaje interpretado...
 
Bien, el caso es que por casualidad, he pillado dos veces una excepción en mi módulo de base de datos. El mensaje de error es el siguiente:
 
15:55:41-> Fallo la consulta: WARNING: there is no transaction inCANTE=2->error de sintaxis en o cerca de <WARNING>

16:40:11-> Fallo la consulta: WARNING: no hay una transacción en curE =3->error de sintaxis en o cerca de <<WARNING>>

(Nótese que me salió una vez en inglés y otra en español)

que viene del fragmento en Python:
 
       except Exception as msg:
            if not "TRAMAS_RECIENTES" in query :
                sys.stderr.write(time.asctime()[11:19] + "-> Fallo la consulta: " \
                                 + query + "->" + str(msg) )
                self.reconexion()
            return []

Lo que ha pasado aquí es que la query que he pasado a la función se ha machacado con la "fusión" de un mensaje de advertencia de postgres (WARNING: there is no transaction in) y una consulta antigua (query = "DELETE FROM ORDENES WHERE ID_REPLICANTE=2"), que sólo hago al arranque del programa para limpiar órdenes residuales.

Además de el módulo de la base de datos, cabe destacar que el programa consta de 3 hilos (threading.Thread) de ejecución, cada uno de los cuales lanza otros dos hilos que gestionan puertos serie para la captura de datos. La variable query que se le acaba pasando a la función que ha cogido la excepción está en casi todas las funciones del programa... Tal vez los hilos se la pisen entre ellos o algo así...

Si hace falta más código o información la pondré, no quería alargar este primer mensaje demasiado.
 
 
 
 
Gracias de antemano
Jorge Romeo
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.