Re: GiST: Bad newtup On Exit From gistSplit() ?

From: Itai Zukerman <zukerman(at)math-hat(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: GiST: Bad newtup On Exit From gistSplit() ?
Date: 2003-03-02 19:31:06
Message-ID: 877kbhh8g5.fsf@matt.w80.math-hat.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

>> I'm still not having any luck tracking down my SEGV. If anyone is
>> interested in debugging or even just reproducing this, I'd be happy to
>> post or E-mail you my code. It looks like shortly after calling
>> gistSplit() there's maybe a double-free() somewhere?
>
> It might help to build with --enable-cassert, if you didn't already.

After recompiling with --enable-cassert, nserting into an empty table,
I get:

TRAP: FailedAssertion("!((VfdCache[0].fd == (-1)))", File: "fd.c", Line: 1113)

Program received signal SIGABRT, Aborted.
0x400eda51 in kill () from /lib/libc.so.6
(gdb) bt
#0 0x400eda51 in kill () from /lib/libc.so.6
#1 0x400ed872 in raise () from /lib/libc.so.6
#2 0x400ee986 in abort () from /lib/libc.so.6
#3 0x081dc4d7 in ExceptionalCondition (conditionName=0x8262d92 "!((VfdCache[0].fd == (-1)))", errorType=0x8262a13 "FailedAssertion", fileName=0x8262a0e "fd.c",
lineNumber=1113) at assert.c:46
#4 0x0816a085 in AtEOXact_Files () at fd.c:1113
#5 0x080a1921 in CommitTransaction () at xact.c:1031
#6 0x080a1c85 in CommitTransactionCommand (forceCommit=0 '\0') at xact.c:1304
#7 0x08177aaa in finish_xact_command (forceCommit=0 '\0') at postgres.c:978
#8 0x08177933 in pg_exec_query_string (query_string=0x8314054, dest=Debug, parse_context=0x82ddb18) at postgres.c:897
#9 0x08178ba7 in PostgresMain (argc=4, argv=0x82c5e00, username=0x82c6400 "postgres") at postgres.c:2013
#10 0x081233b9 in main (argc=4, argv=0xbffffc14) at main.c:235

But if I restart postgres and start with some data in the table, I
get, as before:

Program received signal SIGSEGV, Segmentation fault.
0x401312ff in mallopt () from /lib/libc.so.6
(gdb) bt
#0 0x401312ff in mallopt () from /lib/libc.so.6
#1 0x401302ca in free () from /lib/libc.so.6
#2 0x081ea205 in AllocSetDelete (context=0x82efffc) at aset.c:460
#3 0x081eb107 in MemoryContextDelete (context=0x82efffc) at mcxt.c:188
#4 0x081eb172 in MemoryContextDeleteChildren (context=0x82eff70) at mcxt.c:207
#5 0x081eb093 in MemoryContextDelete (context=0x82eff70) at mcxt.c:161
#6 0x080a1587 in AtCommit_Memory () at xact.c:685
#7 0x080a192b in CommitTransaction () at xact.c:1033
#8 0x080a1c85 in CommitTransactionCommand (forceCommit=0 '\0') at xact.c:1304
#9 0x08177aaa in finish_xact_command (forceCommit=0 '\0') at postgres.c:978
#10 0x08177933 in pg_exec_query_string (query_string=0x8313fcc, dest=Debug, parse_context=0x82efee4) at postgres.c:897
#11 0x08178ba7 in PostgresMain (argc=4, argv=0x82c5e00, username=0x82c6400 "postgres") at postgres.c:2013
#12 0x081233b9 in main (argc=4, argv=0xbffffc14) at main.c:235

Since this only happens after a call to gistSplit(), I still suspect
GiST. But I've been going over the GiST code the past 3 days and I
still can't find anything substantially wrong.

--
Itai Zukerman <http://www.math-hat.com/~zukerman/>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2003-03-02 20:43:46 Re: GiST: Bad newtup On Exit From gistSplit() ?
Previous Message Tom Lane 2003-03-02 18:33:00 CLUSTER loses nulls (was Re: [ADMIN] Still a bug in the VACUUM)