Thread: BUG #1397: busy-loop hang on web server

BUG #1397: busy-loop hang on web server

From
"Chris Jones"
Date:
The following bug has been logged online:

Bug reference:      1397
Logged by:          Chris Jones
Email address:      chris@cjones.org
PostgreSQL version: 7.4.6
Operating system:   NetBSD 2.0 i386
Description:        busy-loop hang on web server
Details:

I recently upgraded my OS from a previous version.  In the process, I
recompiled PostgreSQL 7.3 (using pkgsrc).  I began seeing a hang, so I
upgraded to PostgreSQL 7.4.6 (again using pkgsrc).  Same problem still
exists:

Every day or two, PostgreSQL will hang.  It maxes out the CPU when it does,
with one process seeming to be in a busy loop.  There are the normal
auxiliary processes, as well as a zombie which I assume was servicing a
client.

The busy process doesn't respond to kill, only to "kill -KILL".  After it
dies off due to this, the others eventually (a minute or so) go away, too.

Nothing appears in errlog around the time of the hang; the only messages
there are associated with various startup operations.  The errlog does,
however, indicate the time when the server was interrupted.  That time
coincides with when a backup (using dump) was happening last night.

Please let me know what other information would be useful in debugging this.

Re: BUG #1397: busy-loop hang on web server

From
Simon Riggs
Date:
On Thu, 2005-01-13 at 23:57 +0000, Chris Jones wrote:
> The following bug has been logged online:
>
> Bug reference:      1397
> Logged by:          Chris Jones
> Email address:      chris@cjones.org
> PostgreSQL version: 7.4.6
> Operating system:   NetBSD 2.0 i386
> Description:        busy-loop hang on web server
> Details:
>
> I recently upgraded my OS from a previous version.  In the process, I
> recompiled PostgreSQL 7.3 (using pkgsrc).  I began seeing a hang, so I
> upgraded to PostgreSQL 7.4.6 (again using pkgsrc).  Same problem still
> exists:
>
> Every day or two, PostgreSQL will hang.  It maxes out the CPU when it does,
> with one process seeming to be in a busy loop.  There are the normal
> auxiliary processes, as well as a zombie which I assume was servicing a
> client.
>
> The busy process doesn't respond to kill, only to "kill -KILL".  After it
> dies off due to this, the others eventually (a minute or so) go away, too.
>
> Nothing appears in errlog around the time of the hang; the only messages
> there are associated with various startup operations.  The errlog does,
> however, indicate the time when the server was interrupted.  That time
> coincides with when a backup (using dump) was happening last night.
>
> Please let me know what other information would be useful in debugging this.

Chris,

Are you running any plug-ins or have you altered the server code in any
way? This might be additional Languages added, Functions written in
those languages or SPI code. Those must draw the most suspicion for an
error of this type.

Do you have deadlock detection enabled; set to what?

You need to provide considerably more information to allow anyone to
help you on this.

Your best solution might be to move to 8.0, since you are compiling from
source, and hope that the problem has been resolved at that release. You
will certainly get many other benefits.

--
Best Regards, Simon Riggs

Re: BUG #1397: busy-loop hang on web server

From
Chris Jones
Date:
Simon Riggs wrote:
> Are you running any plug-ins or have you altered the server code in any
> way? This might be additional Languages added, Functions written in
> those languages or SPI code. Those must draw the most suspicion for an
> error of this type.

"select * from pg_language" shows only internal, c, and sql.  I haven't
altered the server code at all.  I don't know what a plug-in is in the
PostgreSQL context, so I assume I'm not using any of those, either.  :)
  I've got several apps installed, but the only one I've run at all is a
PHP-based one, Serendipity.  It just runs "regular" SQL statements.

> Do you have deadlock detection enabled; set to what?

I haven't altered the config at all (but see below).  The settings in
postgresql.conf indicate it's using a deadlock timeout of 1 second (1000
ms).

> You need to provide considerably more information to allow anyone to
> help you on this.

I know; I'm open to suggestions on what information would be useful.
One setting I did just change in postgresql.conf affects logging; it's
now logging all statements via syslog.  I hope that I'll be able to find
the offending statement in the log the next time it hangs.

> Your best solution might be to move to 8.0, since you are compiling from
> source, and hope that the problem has been resolved at that release. You
> will certainly get many other benefits.

I intend to switch to 8.0, but I'd rather not do so immediately if I can
help it.

Chris

--
Chris Jones               chris@cjones.org                www.cjones.org
     PGP ID 5AFDD40A

Re: BUG #1397: busy-loop hang on web server

From
Chris Jones
Date:
For what it's worth, this bug doesn't appear at all now that I've
upgraded to 8.0.1.  Whatever bug tracking system you folks are using,
feel free to close this one.

Chris

--
Chris Jones               chris@cjones.org                www.cjones.org
     PGP ID 5AFDD40A