Re: Race conditions, race conditions!
От | Bruce Momjian |
---|---|
Тема | Re: Race conditions, race conditions! |
Дата | |
Msg-id | 200508122314.j7CNE1o21380@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Re: Race conditions, race conditions! (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
Tom Lane wrote: > Bruce Momjian <pgman@candle.pha.pa.us> writes: > > Patch applied. Thanks. > > * 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++; > > } > > This patch is utterly wrong. Please revert it. > > The case it is Asserting can't happen is explained in the comment a > couple dozen lines further down: > > * try to extend a relation > * read smgrnblocks to find the current relation length > * allocate an empty buffer for the N+1'st page of the rel > * call smgrextend > * smgrextend fails for some reason (eg, no space left on disk) > * buffer remains present, but is not BM_VALID > * awhile later, try to extend relation again > * read smgrnblocks to find the current relation length > * allocate a buffer for the N+1'st page of the rel > > This is entirely likely to find the same non-BM_VALID buffer that was > assigned in the first iteration. Reverted. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073
В списке pgsql-hackers по дате отправления: