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