pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Craig James <craig_james@emolecules.com>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: pgsql-performance@postgresql.org
Subject: Re: libgcc double-free, backend won't die
Date: Tue, 11 Dec 2007 07:05:56 -0800
Message-ID: <475EA754.1090307@emolecules.com> (raw)
In-Reply-To: <20071211112128.GB4708@alvh.no-ip.org>
References: <C34DDC3D.43F60%llonergan@greenplum.com>
	<7EB0D6C0-48E2-4155-8559-9113D3BD2785@ketema.net>
	<4728CF7B.7040306@gmail.com>
	<4728FB3E.3070709@shaw.ca>
	<472978BE.9@hagander.net>
	<4729B1E9.2080306@gmail.com>
	<475E4133.5080009@emolecules.com>
	<20071211112128.GB4708@alvh.no-ip.org>

Alvaro Herrera wrote:
> Craig James wrote:
>> This is driving me crazy.  I have some Postgres C function extensions
>> in a shared library.  They've been working fine.  I upgraded to Fedora
>> Core 6 and gcc4, and now every time psql(1) disconnects from the
>> server, the serverlog gets this message:
>>
>>   *** glibc detected *** postgres: mydb mydb [local] idle: double free or corruption! (!prev): 0x08bfcde8
> 
> Do you have any Perl or Python functions or stuff like that?

There is one Perl function, but it is never invoked during this test.  I connect to Postgres, issue one "select myfunc()", and disconnect.

>>  Postgres 8.1.4
> 
> Please upgrade to 8.1.10 and try again.  If it still fails we will be
> much more interested in tracking it down.

Good idea, but alas, no difference.  I get the same "double free or corruption!" mesage.  I compiled 8.1.10 from source and installed, then rebuilt all of my code from scratch and reinstalled the shared object. Same message as before.

Here is my guess -- and this is just a guess.  My functions use a third-party library which, of necessity, uses malloc/free in the ordinary way.  I suspect that there's a bug in the Postgres palloc() code that's walking over memory that regular malloc() allocates.  The third-party library (OpenBabel) has been tested pretty thoroughly by me an others and has no memory corruption problems.  All malloc's are freed properly.  Does that seem like a possibility?

I can't figure out how to use ordinary tools like valgrind with a Postgres backend process to track this down.

Thanks,
Craig




view thread (28+ messages)  latest in thread

Message-ID: <475EA754.1090307@emolecules.com>
Permalink:  ../475EA754.1090307@emolecules.com/
Also on:    postgresql.org/message-id/475EA754.1090307@emolecules.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-performance@postgresql.org
  Cc: craig_james@emolecules.com, alvherre@alvh.no-ip.org
  Subject: Re: libgcc double-free, backend won't die
  In-Reply-To: <475EA754.1090307@emolecules.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox