We have built into the backend of the database a third party application
called pcmiler that produces mileage between two locations. This has
been working in the past, but after upgrading to RHEL 4, Postgresql
7.4.16 and pcmiler 20 (from pcmiler 17), the server process is
terminated with a signal 11. I know that's a lot of variables that
changed, but one required the other, thus we can't easily backout
anything (outside of possibly moving down to 7.4.13 of Postgres).
The log of the server process contains:
LOG: server process (PID 32441) was terminated by signal 11
LOG: terminating any other active server processes
WARNING: terminating connection because of crash of another server process
DETAIL: The postmaster has commanded this server process to roll back
the current transaction and exit, because another server process exited
abnormally and possibly corrupted shared memory.
HINT: In a moment you should be able to reconnect to the database and
repeat your command.
A backtrace against this process produces:
Program received signal SIGSEGV, Segmentation fault.
0x0814acc9 in FileAccess (file=168481968) at fd.c:717
717 if (FileIsNotOpen(file))
(gdb) bt
#0 0x0814acc9 in FileAccess (file=168481968) at fd.c:717
#1 0x0814b2e7 in FileRead (file=168481968, buffer=0xbff816ce "", amount=2)
at fd.c:972
#2 0x00203ecc in ?? ()
#3 0x0a0ad4b0 in ?? ()
#4 0xbff816ce in ?? ()
#5 0x00000002 in ?? ()
#6 0x00000001 in ?? ()
#7 0x0a04fdc0 in ?? ()
#8 0xbff83110 in ?? ()
#9 0x00000001 in ?? ()
#10 0x00000002 in ?? ()
#11 0xbff83110 in ?? ()
#12 0x00000000 in ?? ()
I'm assuming that the portion of the backtrace from frame 2-12 is likely
produced from the pcmiler binaries as we do not have source and they
don't contain debugging symbols.
Any insights would be greatly appreciated.
--
Until later, Geoffrey
Those who would give up essential Liberty, to purchase a little
temporary Safety, deserve neither Liberty nor Safety.
- Benjamin Franklin