From: | Dave Page <dpage(at)pgadmin(dot)org> |
---|---|
To: | Thomas Krennwallner <tk+pgsql(at)postsubmeta(dot)net>, Ashesh Vashi <ashesh(dot)vashi(at)enterprisedb(dot)com> |
Cc: | pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org> |
Subject: | Re: PATCH: pgagent fix for 'Caught unhandled unknown exception; terminating' bug in SQL steps |
Date: | 2015-03-27 15:54:01 |
Message-ID: | CA+OCxozp+B6X58hX9U-WyWnTJnAYLm9QY-AUxj42y_MyfoL=WQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | 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(at)postsubmeta(dot)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(at)postgresql(dot)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
From | Date | Subject | |
---|---|---|---|
Next Message | Ashesh Vashi | 2015-03-31 12:45:59 | Re: PATCH: pgagent fix for 'Caught unhandled unknown exception; terminating' bug in SQL steps |
Previous Message | Thomas Krennwallner | 2015-03-26 12:49:07 | PATCH: pgagent fix for 'Caught unhandled unknown exception; terminating' bug in SQL steps |