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!
|
Список | 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 по дате отправления: