Gustavo Vaccaro escribió:
> Jaime,
> 
> si yo tambien pienso que puede ser el debugger (pldebugger) en este caso.
> 
> Pero me paso una vez una base de datos que estaba en producción. No pude matar
> el proceso. Tuve que reiniciar el postgres.
> 
> Como ya te dije, pasa muy de vez en cuando y por eso es muy dificil de 
> tracear.
> Y mucho menos cuando los tiempos apremian y estan esperando que el sistema
> vuelva a funcionar.

Tengo entendido que el debugger de plpgsql opera conectando una segunda
sesión, la cual ejecuta funciones especiales para hacer que la
función-bajo-debugger continúe o se detenga.  Si matas la GUI mientras
las función-bajo-debugger está detenida, es obvio que se va a quedar
pegada hasta que la vuelvas a activar.  Eso lo deberías poder hacer
conectando otra sesión y ejecutando las funciones de debugger para
indicarle que continúe.  Desconozco la API exacta para decirle que a
plpgsql que se siga moviendo; la verdad es que como es un plugin
propietario de EDB, no me parece que esté súper documentado en forma
pública.  El código fuente está acá:
https://git.postgresql.org/gitweb/?p=pldebugger.git;a=summary

Me pregunto si esto efectúa un "sleep" cuando está detenido en un
breakpoint, y si es así, si sería posible usar un latch para que se
despierte en caso de recibir una señal.  Hmm.

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a