Re: PATCH: pgagent fix for 'Caught unhandled unknown exception; terminating' bug in SQL steps
От | Dave Page |
---|---|
Тема | Re: PATCH: pgagent fix for 'Caught unhandled unknown exception; terminating' bug in SQL steps |
Дата | |
Msg-id | CA+OCxozp+B6X58hX9U-WyWnTJnAYLm9QY-AUxj42y_MyfoL=WQ@mail.gmail.com обсуждение исходный текст |
Ответ на | PATCH: pgagent fix for 'Caught unhandled unknown exception; terminating' bug in SQL steps (Thomas Krennwallner <tk+pgsql@postsubmeta.net>) |
Список | pgadmin-hackers |
Ashesh, can you do the honours with this please? Thanks! On Thu, Mar 26, 2015 at 12:49 PM, Thomas Krennwallner <tk+pgsql@postsubmeta.net> wrote: > Hi! > > Running pgagent 3.4.0 on Debian jessie with an SQL jobstep crashes the > worker thread with the error message > > Caught unhandled unknown exception; terminating > > Both job and jobstep status then remain as 'r' (running) until the > pgagent process quits. After restarting pgagent, which cleans up the > job status and sets it to 'd' (aborted), the job containing the SQL > jobstep is free to run again, but the next run will end up in the same > deadlock situation. > > I have tracked down the problem to DBconn::GetLastError(), which gets > called after each SQL jobstep execution in Job::Execute(): there, > DBconn::GetLastError() throws an exception whenever the last error > message is empty. > > The attached patch fixes this problem by adding missing bounds checks > to DBconn::GetLastError(). > > Here is a log of pgagent with an SQL jobstep: > > $ pgagent -l 2 -f hostaddr=127.0.0.1 port=5432 dbname=pgdb user=pgdb > DEBUG: Creating primary connection > DEBUG: Connection Information: > DEBUG: user : pgdb > DEBUG: port : 5432 > DEBUG: host : 127.0.0.1 > DEBUG: dbname : pgdb > DEBUG: password : > DEBUG: conn timeout : 0 > DEBUG: Connection Information: > DEBUG: user : pgdb > DEBUG: port : 5432 > DEBUG: host : 127.0.0.1 > DEBUG: dbname : pgdb > DEBUG: password : > DEBUG: conn timeout : 0 > DEBUG: Creating DB connection: user=pgdb port=5432 hostaddr=127.0.0.1 dbname=pgdb > DEBUG: Database sanity check > DEBUG: Clearing zombies > DEBUG: Checking for jobs to run > DEBUG: Sleeping... > DEBUG: Clearing inactive connections > DEBUG: Connection stats: total - 1, free - 0, deleted - 0 > DEBUG: Checking for jobs to run > DEBUG: Sleeping... > [...] > DEBUG: Clearing inactive connections > DEBUG: Connection stats: total - 1, free - 0, deleted - 0 > DEBUG: Checking for jobs to run > DEBUG: Sleeping... > DEBUG: Connection stats: total - 1, free - 0, deleted - 0 > DEBUG: Checking for jobs to run > DEBUG: Creating job thread for job 5 > DEBUG: Creating DB connection: user=pgdb port=5432 hostaddr=127.0.0.1 dbname=pgdb > DEBUG: Allocating new connection to database pgdb > DEBUG: Starting job: 5 > DEBUG: Sleeping... > DEBUG: Creating DB connection: user=pgdb port=5432 hostaddr=127.0.0.1 dbname=pgdb dbname=pgdb > DEBUG: Allocating new connection to database pgdb > DEBUG: Executing SQL step 40 (part of job 5) > *** Caught unhandled unknown exception; terminating > DEBUG: Destroying job thread for job 5 > DEBUG: Checking for jobs to run > DEBUG: Sleeping... > DEBUG: Clearing inactive connections > DEBUG: Connection stats: total - 3, free - 0, deleted - 0 > DEBUG: Checking for jobs to run > DEBUG: Sleeping... > DEBUG: Clearing inactive connections > DEBUG: Connection stats: total - 3, free - 0, deleted - 0 > DEBUG: Checking for jobs to run > DEBUG: Sleeping... > [...] > > > -- > Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgadmin-hackers > -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgadmin-hackers по дате отправления: