pgAgent crashes on failed connection

From: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
To: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: pgAgent crashes on failed connection
Date: 2011-08-04 19:19:46
Message-ID: 4E3AF0D2.8020908@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

I created 100 identical pgagent jobs, with one step that simply does
"SELECT pg_sleep(10)". I then forced them all to run immediately, with
"UPDATE pgagent.pga_job SET jobnextrun=now();". pgagent crashed.

What happened is that the when all those jobs are launched at the same
time, the server ran into the max_connections limit, and pgagent didn't
handle that too well. JobThread::JobThread constructor does not check
for NULL result from DBConn::Get(), and passes a NULL connection to
Job::Job, which tries to reference it, leading to a segfault.

I propose the attached patch.

--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com

Attachment Content-Type Size
fix-pgagent-segfault-on-failed-connection.patch text/x-diff 885 bytes

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Merlin Moncure 2011-08-04 19:30:17 Re: pgAgent crashes on failed connection
Previous Message Heikki Linnakangas 2011-08-04 17:59:18 Broken link in pgAgent/README