>> 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/> ---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])