Re: libgcc double-free, backend won't die

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

              http://www.postgresql.org/docs/faq

[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux