Tom Lane wrote:
Craig James <craig_james@xxxxxxxxxxxxxx> writes:
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
Have you tried attaching to one of these processes with gdb to see where
it ends up? Have you checked to see if the processes are becoming
multi-threaded?
regards, tom lane
# ps -ef | grep postgres
postgres 31362 1 0 06:53 ? 00:00:00 /usr/local/pgsql/bin/postmaster -D /postgres/main
postgres 31364 31362 0 06:53 ? 00:00:00 postgres: writer process
postgres 31365 31362 0 06:53 ? 00:00:00 postgres: stats buffer process
postgres 31366 31365 0 06:53 ? 00:00:00 postgres: stats collector process
postgres 31442 31362 0 06:54 ? 00:00:00 postgres: craig_test craig_test [local] idle
root 31518 31500 0 07:06 pts/6 00:00:00 grep postgres
# gdb -p 31442
GNU gdb Red Hat Linux (6.5-15.fc6rh)
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
[snip - a bunch of symbol table stuff]
0x00110402 in __kernel_vsyscall ()
(gdb) bt
#0 0x00110402 in __kernel_vsyscall ()
#1 0x0082fb8e in __lll_mutex_lock_wait () from /lib/libc.so.6
#2 0x007bfce8 in _L_lock_14096 () from /lib/libc.so.6
#3 0x007befa4 in free () from /lib/libc.so.6
#4 0x00744f93 in _dl_map_object_deps () from /lib/ld-linux.so.2
#5 0x0074989d in dl_open_worker () from /lib/ld-linux.so.2
#6 0x00745c36 in _dl_catch_error () from /lib/ld-linux.so.2
#7 0x00749222 in _dl_open () from /lib/ld-linux.so.2
#8 0x00858712 in do_dlopen () from /lib/libc.so.6
#9 0x00745c36 in _dl_catch_error () from /lib/ld-linux.so.2
#10 0x008588c5 in __libc_dlopen_mode () from /lib/libc.so.6
#11 0x00836139 in init () from /lib/libc.so.6
#12 0x008362d3 in backtrace () from /lib/libc.so.6
#13 0x007b3e11 in __libc_message () from /lib/libc.so.6
#14 0x007bba96 in _int_free () from /lib/libc.so.6
#15 0x007befb0 in free () from /lib/libc.so.6
#16 0x001f943a in DeleteByteCode (node=0x890ff4) at chains.cpp:477
#17 0x00780859 in exit () from /lib/libc.so.6
#18 0x081a6064 in proc_exit ()
#19 0x081b5b9d in PostgresMain ()
#20 0x0818e34b in ServerLoop ()
#21 0x0818f1de in PostmasterMain ()
#22 0x08152369 in main ()
(gdb)
---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings