Thread: What happens when syslog gets blocked?

What happens when syslog gets blocked?

From
decibel
Date:
We recently had a problem with a database where the /var filesystem
got corrupted. This appears to have seriously impacted the ability of
STDERR from Postgres to get put out to disk, which ended up blocking
backends.

Because of this we want to switch from using STDERR to using syslog,
but I'm not sure if syslog() can end up blocking or not. I know that
(by default) syslog uses UDP when logging to an external syslog, but
what happens if you're using the local syslog? Is it still UDP or
some other mechanism that could potentially block the backends?

Also, I think we should either warn users about STDERR (and
presumably the CVS logging) or change things so that something that
breaks logging doesn't block backends.
--
Decibel!, aka Jim C. Nasby, Database Architect  decibel@decibel.org
Give your computer some brain candy! www.distributed.net Team #1828



Re: What happens when syslog gets blocked?

From
Tom Lane
Date:
decibel <decibel@decibel.org> writes:
> We recently had a problem with a database where the /var filesystem
> got corrupted. This appears to have seriously impacted the ability of
> STDERR from Postgres to get put out to disk, which ended up blocking
> backends.

> Because of this we want to switch from using STDERR to using syslog,
> but I'm not sure if syslog() can end up blocking or not.

syslog (at least in the implementations I'm familiar with) has the
opposite problem: when the going gets tough, it starts losing messages.
I do not think you'll really be making your life better by switching.

            regards, tom lane

Re: What happens when syslog gets blocked?

From
Bill Moran
Date:
In response to Tom Lane <tgl@sss.pgh.pa.us>:

> decibel <decibel@decibel.org> writes:
> > We recently had a problem with a database where the /var filesystem
> > got corrupted. This appears to have seriously impacted the ability of
> > STDERR from Postgres to get put out to disk, which ended up blocking
> > backends.
>
> > Because of this we want to switch from using STDERR to using syslog,
> > but I'm not sure if syslog() can end up blocking or not.
>
> syslog (at least in the implementations I'm familiar with) has the
> opposite problem: when the going gets tough, it starts losing messages.
> I do not think you'll really be making your life better by switching.

Well ... "life better" really depends on which failure scenario you're
more comfortable with ... personally, I'd rather lose log messages than
have the DB system go down.  Of course, if auditing is critical to your
scenario, then your priorities are different ...

--
Bill Moran
http://www.potentialtech.com
http://people.collaborativefusion.com/~wmoran/

Re: What happens when syslog gets blocked?

From
decibel
Date:
On Aug 6, 2009, at 2:00 PM, Bill Moran wrote:
> In response to Tom Lane <tgl@sss.pgh.pa.us>:
>
>> decibel <decibel@decibel.org> writes:
>>> We recently had a problem with a database where the /var filesystem
>>> got corrupted. This appears to have seriously impacted the
>>> ability of
>>> STDERR from Postgres to get put out to disk, which ended up blocking
>>> backends.
>>
>>> Because of this we want to switch from using STDERR to using syslog,
>>> but I'm not sure if syslog() can end up blocking or not.
>>
>> syslog (at least in the implementations I'm familiar with) has the
>> opposite problem: when the going gets tough, it starts losing
>> messages.
>> I do not think you'll really be making your life better by switching.
>
> Well ... "life better" really depends on which failure scenario you're
> more comfortable with ... personally, I'd rather lose log messages
> than
> have the DB system go down.  Of course, if auditing is critical to
> your
> scenario, then your priorities are different ...


Bingo. I'm thinking we should make mention of this in the docs...
--
Decibel!, aka Jim C. Nasby, Database Architect  decibel@decibel.org
Give your computer some brain candy! www.distributed.net Team #1828



Re: What happens when syslog gets blocked?

From
Alvaro Herrera
Date:
decibel wrote:
> On Aug 6, 2009, at 2:00 PM, Bill Moran wrote:

> >Well ... "life better" really depends on which failure scenario you're
> >more comfortable with ... personally, I'd rather lose log messages
> >than
> >have the DB system go down.  Of course, if auditing is critical to
> >your
> >scenario, then your priorities are different ...
>
> Bingo. I'm thinking we should make mention of this in the docs...

I propose the following patch.

--
Alvaro Herrera                                http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

Attachment

Re: [DOCS] What happens when syslog gets blocked?

From
Alvaro Herrera
Date:
Alvaro Herrera wrote:
> decibel wrote:
> > On Aug 6, 2009, at 2:00 PM, Bill Moran wrote:
>
> > >Well ... "life better" really depends on which failure scenario you're
> > >more comfortable with ... personally, I'd rather lose log messages
> > >than
> > >have the DB system go down.  Of course, if auditing is critical to
> > >your
> > >scenario, then your priorities are different ...
> >
> > Bingo. I'm thinking we should make mention of this in the docs...
>
> I propose the following patch.

Committed (on HEAD)

--
Alvaro Herrera                                http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support