Skip site navigation (1) Skip section navigation (2)

Re: BUG #6643: [PostgreSQL9.2beta1] COPY after changing fillfactor gets a PANIC.

From: Heikki Linnakangas <heikki(dot)linnakangas(at)enterprisedb(dot)com>
To: katsumata(dot)tomonari(at)po(dot)ntts(dot)co(dot)jp
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #6643: [PostgreSQL9.2beta1] COPY after changing fillfactor gets a PANIC.
Date: 2012-05-16 11:14:49
Message-ID: 4FB38C29.8070009@enterprisedb.com (view raw or flat)
Thread:
Lists: pgsql-bugs
On 16.05.2012 13:47, Heikki Linnakangas wrote:
> This sounds like a bug in the new page-at-a-time behavior in COPY. Can
> you send me a self-contained test, including the test data?

Never mind. After staring at the code for a while, I spotted the bug, 
and was able to reproduce with a simpler case. It's quite easy to 
reproduce when you set fillfactor even lower, like 10.

The problem is with this line in heap_multi_insert function:

	if (PageGetHeapFreeSpace(page) - saveFreeSpace < MAXALIGN(heaptup->t_len))

That doesn't work as intended, because the return value of 
PageGetHeapFreeSpace and saveFreeSpace are unsigned. When saveFreeSpace 
is larger than the amount of free space on the page, the left hand side 
of that comparison is supposed to go negative, but it wraps around to a 
highly positive number because it's unsigned.

Fixed, thanks for the report!

-- 
   Heikki Linnakangas
   EnterpriseDB   http://www.enterprisedb.com

In response to

Responses

pgsql-bugs by date

Next:From: Tomonari KatsumataDate: 2012-05-16 11:35:44
Subject: Re: BUG #6643: [PostgreSQL9.2beta1] COPY after changing fillfactor gets a PANIC.
Previous:From: Heikki LinnakangasDate: 2012-05-16 10:47:37
Subject: Re: BUG #6643: [PostgreSQL9.2beta1] COPY after changing fillfactor gets a PANIC.

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group