I have a linux box with centos 6.7 and postgres 9.3.9.
I have a foreign data wrapper throught an oracle 11.2 box and a jdbc driver.
It's working fine since several months, but yesterday I had to change pg_hba file and launch a "service postgres reload".
Postgres swith to recovery mode and in my postgresql logs I can find the cause :
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x000000000064a661, pid=24074, tid=139895462369216
#
# JRE version: Java(TM) SE Runtime Environment (7.0_45-b18) (build 1.7.0_45-b18)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.45-b08 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C [postgres: dpmmc_usr dpmmc XXXXXXXXX(54268) PARSE+0x24a661] VirtualXactLockTableInsert+0x11
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /pgsql0/9.3/data/hs_err_pid24074.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
2015-09-01 14:45:17 NCT @/ 00000 LOG: server process (PID 24074) was terminated by signal 6: Aborted
2015-09-01 14:45:17 NCT @/ 00000 LOG: terminating any other active server processes
2015-09-01 14:45:17 NCT @/ 00000 LOG: server process (PID 24074) was terminated by signal 6: Aborted
2015-09-01 14:45:17 NCT @/ 00000 LOG: terminating any other active server processes
2015-09-01 14:45:17 NCT orchestra_adm@XXXXXXXXX/orchestra 57P02 WARNING: terminating connection because of crash of another server process
2015-09-01 14:45:17 NCT orchestra_adm@XXXXXXXXX/orchestra 57P02 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.
....
2015-09-01 14:45:17 NCT postgres@[local]/ccas 57P03 FATAL: the database system is in recovery mode
2015-09-01 14:45:17 NCT abs_usr@XXXXXXXX/sirh 57P03 FATAL: the database system is in recovery mode
....
My jdbc lib is /opt/jdk1.7.0_45/jre/lib/ext/ojdbc14.jar (I also try with ojdbc7.jar)
After the postgresql restart, I try to execute another reload and I have the same issue. So It not seems to be a java memory leak cause...
Where can I find help on this issue ?
someone already experienced this ?
what can I do to avoid this ?
Edit : Reload leads to a SIGHUP signal send to postmaster processus. Postmaster forward SIGHUP to all his child. And JVM considers SIGHUP as a violent terminaison so it sends exception to postmaster...
(hint on this : https://bugs.openjdk.java.net/browse/JDK-6740344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel)
I try to give -Xrs JAVA_OPTS but it's never used... I don't know how to tell postgres to load java with options... (references for -Xrs : http://linux.die.net/man/1/java-java-1.7.0-openjdk)
Thanks !