From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "Qingqing Zhou" <zhouqq(at)cs(dot)toronto(dot)edu> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Possible race in UnlockBuffers() and UnpinBuffer() |
Date: | 2006-04-15 04:21:55 |
Message-ID: | 12922.1145074915@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
"Qingqing Zhou" <zhouqq(at)cs(dot)toronto(dot)edu> writes:
> "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote
>> "Qingqing Zhou" <zhouqq(at)cs(dot)toronto(dot)edu> writes:
>>> After this, the proc->sem will be bumped to 1 unexpectedly ... Since
>>> this problem is rare, a possible fix is to put a critical section
>>> around line 1 to 7 and remove UnlockBuffers() accordingly.
>>
>> No, that would make any attempt to control-C a VACUUM have a significant
>> probability for panicking the whole database.
> Why panicking by control-C?
Because the entire point of a critical section is that any error (eg
"Query cancelled") is turned into a panic. So a query-cancel attempt
while a vacuum is blocked here would either do nothing (bad) or panic
the database (worse).
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2006-04-15 04:51:24 | Re: two-argument aggregates and SQL 2003 |
Previous Message | Qingqing Zhou | 2006-04-15 02:48:49 | Re: Possible race in UnlockBuffers() and UnpinBuffer() |