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

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 (view raw or flat)
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

pgsql-hackers by date

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

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