Re: Race conditions, race conditions!

Поиск
Список
Период
Сортировка
От Qingqing Zhou
Тема Re: Race conditions, race conditions!
Дата
Msg-id dcc7ee$7uj$1@news.hub.org
обсуждение исходный текст
Ответ на Race conditions, race conditions!  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Race conditions, race conditions!  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список pgsql-hackers
"Tom Lane" <tgl@sss.pgh.pa.us> writes
>
> WARNING:  relation "t1" page 196 is uninitialized --- fixing
> TRAP: FailedAssertion("!((((PageHeader) ((PageHeader)
pageHeader))->pd_upper == 0))", File: "hio.c", Line: 263)
> LOG:  server process (PID 11296) was terminated by signal 6
>

Inspired by this, can we put an asseration here:

--- /*  * lookup the buffer.  IO_IN_PROGRESS is set if the requested  * block is not currently in memory.  */ bufHdr =
BufferAlloc(reln,blockNum, &found);
 

+ /* we are guaranted that nobody else has touched this will-be-new block */
+ Assert(!(found && isExtend));
 if (found)  BufferHitCount++;
---

BufferAlloc() consists of two parts, one is looking for the blockNum, the
other is allocating a free buffer. If the asseration is good, then for
"isExtend", we just need the second part. This could bring marginal
performance benefits.


Regards,
Qingqing




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Michael Fuhr
Дата:
Сообщение: Information Schema DBMS VERSION wrong
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Information Schema DBMS VERSION wrong