failed assertion in toasting code - Mailing list pgsql-hackers

From Sergey E. Koposov
Subject failed assertion in toasting code
Date
Msg-id Pine.LNX.4.64.0802201314590.28404@lnfm1.sai.msu.ru
Whole thread Raw
Responses Re: failed assertion in toasting code  (Gregory Stark <stark@enterprisedb.com>)
Re: failed assertion in toasting code  (Teodor Sigaev <teodor@sigaev.ru>)
Re: failed assertion in toasting code  (Gregory Stark <stark@enterprisedb.com>)
List pgsql-hackers
Hello -hackers,

In the process of converting a multi-Tb datadabe from 8.2 to 8.3, Postgres 
8.3 died at the failed assertion:

TRAP: FailedAssertion("!(((toast_pointer).va_extsize < (toast_pointer).va_rawsize - ((int32) sizeof(int32))))", File:
"tuptoaster.c",Line: 1134)
 
LOG:  server process (PID 8874) was terminated by signal 6: Aborted
LOG:  terminating any other active server processes
LOG:  all server processes terminated; reinitializing
LOG:  database system was interrupted; last known up at 2008-02-20 07:43:00 MSK
LOG:  database system was not properly shut down; automatic recovery in progress
LOG:  redo starts at 78/BA00E060
LOG:  record with zero length at 78/BC7A5FA8
LOG:  redo done at 78/BC7A5F78
LOG:  last completed transaction was at log time 2008-02-20 07:43:03.292665+03
LOG:  autovacuum launcher started
LOG:  database system is ready to accept connections

Unfortunately I cannot tell much more right now (I don't have 
the exact name of the table even), although I suspect which column is that 
(because I have only one column which is subject to toasting).

I was doing basically pg_dumpall_8.2 | psql_8.3 
I can say that the tables are large ~ 100-500 Gb in size and contain the 
column with the image in a special type "image", which is 
toasted. 
cas=# \d sdssdr5.frame         Table "sdssdr5.frame" Column  |       Type       | Modifiers
---------+------------------+----------- fieldid | bigint           | not null
.................. htmid   | bigint           | not null img     | image            | not null

CREATE TYPE image (        INPUT = image_in,        OUTPUT = image_out,        INTERNALLENGTH = -1,        STORAGE =
external
);

Although I may agree that it could be a problem occurring due to the bug 
in type_in, type_out functions, I really doubt that, since it worked 
perfectly with 8.1-8.2 and the code is quite simple.

I'll try to get the postmortem core dump, although it may require another 
couple of days since the segfault occured after two days of dumping :(

Does anyone have ideas what could be the reason for the bug ?

Thanks in advance.

Regards,    Sergey

*******************************************************************
Sergey E. Koposov
Max Planck Institute for Astronomy/Cambridge Institute for Astronomy/Sternberg Astronomical Institute
Tel: +49-6221-528-349
Web: http://lnfm1.sai.msu.ru/~math
E-mail: math@sai.msu.ru


pgsql-hackers by date:

Previous
From: Dimitri Fontaine
Date:
Subject: Re: Permanent settings
Next
From: Gregory Stark
Date:
Subject: Re: failed assertion in toasting code