Re: crash on 8.2 and cvshead - failed to add item to the

Поиск
Список
Период
Сортировка
От Joe Conway
Тема Re: crash on 8.2 and cvshead - failed to add item to the
Дата
Msg-id 45B8D68D.9080207@joeconway.com
обсуждение исходный текст
Ответ на Re: crash on 8.2 and cvshead - failed to add item to the  (Heikki Linnakangas <heikki@enterprisedb.com>)
Список pgsql-hackers
Heikki Linnakangas wrote:
> Heikki Linnakangas wrote:
>> Joe Conway wrote:
>>> We just came upon a crash bug in Postgres >= 8.2. The attached
>>> standalone script (just needs a database with plpgsql installed)
>>> reproduces the crash for me on 32-bit machines (i686) but NOT on 64 bit
>>> machines (x86_64), for Postgres 8.2 and cvs-head, but not on 8.1. We've
>>> verified this on about four 32 bit machines, and four 64 bit machines
>>> (including one each under vmware on the same host). All machines were
>>> some flavor of Red Hat, Fedora, or Gentoo.
>> Hmm. There seems to be something wrong in the free space calculation in 
>> the algorithm for choosing the right split location. I'll dig deeper, 
>> unless someone beats me to it..
> 
> I think I found it. The page splitting code didn't take into account 
> that when the new item is the first one on the right page, it also 
> becomes the high key of the left page. The fact that this test case 
> triggered it in 32 bit machines and not on 64 bit machines was a 
> coincidence.
> 
> Patch attached.

Thanks! That seems to have fixed it. Both the original test case and a 
somewhat simplified one that we created a few minutes ago work fine now, 
on 8.2 and cvs-head. The simplified case is still about 22K gzipped -- 
let me know if you want a copy and I'll send it off list.

Joe


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

Предыдущее
От: Teodor Sigaev
Дата:
Сообщение: Re: tsearch in core patch, for inclusion
Следующее
От: Tom Lane
Дата:
Сообщение: Re: crash on 8.2 and cvshead - failed to add item to the