From: | Kevin Grittner <kgrittn(at)ymail(dot)com> |
---|---|
To: | Andres Freund <andres(at)2ndquadrant(dot)com> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "pgsql-hackers(at)postgreSQL(dot)org" <pgsql-hackers(at)postgreSQL(dot)org> |
Subject: | Re: "multiple backends attempting to wait for pincount 1" |
Date: | 2015-02-14 19:14:27 |
Message-ID: | 1533677374.3210544.1423941267990.JavaMail.yahoo@mail.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Andres Freund <andres(at)2ndquadrant(dot)com> wrote:
> On 2015-02-14 17:25:00 +0000, Kevin Grittner wrote:
>>> I think we should simply move the
>>> buf->flags &= ~BM_PIN_COUNT_WAITER (Inside LockBuffer)
>>
>> I think you meant inside UnpinBuffer?
>
> No, LockBufferHdr. What I meant was that the pincount can only be
> manipulated while the buffer header spinlock is held.
Oh, I see what you were saying -- I had read that a different way
entirely. Got it.
>> Even though it appears to be a long-standing bug, there don't
>> appear to have been any field reports, so it doesn't seem like
>> something to back-patch.
>
> I was wondering about that as well. But I don't think I agree.
> The most likely scenario for this to fail is in full table
> vacuums that have to freeze rows - those are primarily triggered
> by autovacuum. I don't think it's likely that such a error
> message would be discovered in the logs unless it happens very
> regularly.
I guess we have some time before the next minor release to find any
problems with this; perhaps the benefit would outweigh the risk.
Anyone else want to weigh in on that?
> You can't manipulate flags without holding the spinlock.
> Otherwise you (or the other writer) can easily cancel the other
> sides effects.
So is the attached more like what you had in mind? If not, feel
free to post a patch. :-)
--
Kevin Grittner
EDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Attachment | Content-Type | Size |
---|---|---|
pincount-1-bugfix-v2.diff | text/x-diff | 899 bytes |
From | Date | Subject | |
---|---|---|---|
Next Message | Jim Nasby | 2015-02-14 20:35:00 | Re: New CF app deployment |
Previous Message | Tom Lane | 2015-02-14 19:10:53 | Re: "multiple backends attempting to wait for pincount 1" |