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.
pgadmin-hackers by date
|Next:||From: Merlin Moncure||Date: 2011-08-04 19:30:17|
|Subject: Re: pgAgent crashes on failed connection|
|Previous:||From: Heikki Linnakangas||Date: 2011-08-04 17:59:18|
|Subject: Broken link in pgAgent/README|