BUG #1397: busy-loop hang on web server

Started by Chris Jonesover 21 years ago4 messagesbugs
Jump to latest
#1Chris Jones
chris@cjones.org

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.

#2Simon Riggs
simon@2ndQuadrant.com
In reply to: Chris Jones (#1)
Re: BUG #1397: busy-loop hang on web server

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

#3Chris Jones
chris@cjones.org
In reply to: Simon Riggs (#2)
Re: BUG #1397: busy-loop hang on web server

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

#4Chris Jones
chris@cjones.org
In reply to: Chris Jones (#3)
Re: BUG #1397: busy-loop hang on web server

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