Thread: eeeh... buffer leak?

eeeh... buffer leak?

From
Lennert Buytenhek
Date:
Hmmm... is this bad?


ulsec=# truncate job;
NOTICE:  Buffer Leak: [002] (freeNext=-3, freePrev=-3, relname=job, blockNum=0,
flags=0xc, refcount=1 -1)
TRUNCATE
ulsec=#

Re: eeeh... buffer leak?

From
Tom Lane
Date:
Lennert Buytenhek <buytenh@gnu.org> writes:
> ulsec=# truncate job;
> NOTICE:  Buffer Leak: [002] (freeNext=-3, freePrev=-3, relname=job, blockNum=0,
> flags=0xc, refcount=1 -1)
> TRUNCATE

Hmm, that's interesting.  It shouldn't be possible for PrivateRefCount
(the last value printed) to become negative.  Can you give a sequence
for reproducing this notice from a standing start?

The notice isn't especially worrisome in itself, but to the extent that
it implies some incorrect bookkeeping of buffer refcounts, there could
be a problem lurking somewhere.

            regards, tom lane

Re: eeeh... buffer leak?

From
Lennert Buytenhek
Date:
On Sun, 15 Oct 2000, Tom Lane wrote:

> > ulsec=# truncate job;
> > NOTICE:  Buffer Leak: [002] (freeNext=-3, freePrev=-3, relname=job, blockNum=0,
> > flags=0xc, refcount=1 -1)
> > TRUNCATE
>
> Hmm, that's interesting.  It shouldn't be possible for PrivateRefCount
> (the last value printed) to become negative.  Can you give a sequence
> for reproducing this notice from a standing start?

Unfortunately not. I was very very surprised when I saw this (as I never
got any errors like this), and I tried to reproduce what I did, but I
didn't get this message again. (This is a pretty heavily-used database
(lots of clients via the network), so the odds of reproducing the exact
sequence of events is pretty small anyway).

By the way, this is PostgreSQL 7.0.2 on a Red Hat 6.2 box with a custom
kernel.

So.. what am I to do if I ever get this message again?



greetings,
Lennert

Re: eeeh... buffer leak?

From
Tom Lane
Date:
Lennert Buytenhek <buytenh@gnu.org> writes:
>> Hmm, that's interesting.  It shouldn't be possible for PrivateRefCount
>> (the last value printed) to become negative.  Can you give a sequence
>> for reproducing this notice from a standing start?

> Unfortunately not. I was very very surprised when I saw this (as I never
> got any errors like this), and I tried to reproduce what I did, but I
> didn't get this message again. (This is a pretty heavily-used database
> (lots of clients via the network), so the odds of reproducing the exact
> sequence of events is pretty small anyway).

PrivateRefCount is local to a particular backend, so the behavior of
other clients shouldn't matter (in theory anyway ;-)).  It should be
sufficient to reproduce the sequence executed by your specific session.
Not that that helps much if you don't remember, but please try.

> So.. what am I to do if I ever get this message again?

Don't panic ... but see if you can reproduce it.

            regards, tom lane

Re: eeeh... buffer leak?

From
Lennert Buytenhek
Date:
On Tue, 17 Oct 2000, Tom Lane wrote:

> PrivateRefCount is local to a particular backend, so the behavior of
> other clients shouldn't matter (in theory anyway ;-)).  It should be
> sufficient to reproduce the sequence executed by your specific session.
> Not that that helps much if you don't remember, but please try.

Sorry, I haven't come around this message anymore :(

Could it have been caused by defective hardware?


> > So.. what am I to do if I ever get this message again?
>
> Don't panic ... but see if you can reproduce it.

Heh.. just think Douglas Adams?


greetings,
Lennert

Re: eeeh... buffer leak?

From
Lennert Buytenhek
Date:
On Tue, 17 Oct 2000, Tom Lane wrote:

> PrivateRefCount is local to a particular backend, so the behavior of
> other clients shouldn't matter (in theory anyway ;-)).  It should be
> sufficient to reproduce the sequence executed by your specific session.
> Not that that helps much if you don't remember, but please try.

Sorry, I haven't come around this message anymore :(

Could it have been caused by defective hardware?


> > So.. what am I to do if I ever get this message again?
>
> Don't panic ... but see if you can reproduce it.

Heh.. just think Douglas Adams?


greetings,
Lennert