Java thread stack overflow caused by Oracle JDBC driver

Solution Verified - Updated -

Issue

  • JBoss without this data source starts up normally, however when it is added to the deploy directory  JBoss fails to start, with this error in the console output:
    11:52:05,720 INFO  [ConnectionProviderFactory] Initializing connection 
    provider: 
    org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider
    ./run.sh:
     line 210: 18206 Segmentation fault      "$JAVA" $JAVA_OPTS 
    -Djava.endorsed.dirs="$JBOSS_ENDORSED_DIRS" -classpath 
    "$JBOSS_CLASSPATH" org.jboss.Main "$@"
    
  • The following error in the Linux /var/log/messages file:
    kernel: java[17601]: segfault at 00000000498a2ca8 rip 00002aac2144459d rsp 00000000498a2c90 error 6
    
  • java.lang.StackOverflowError
  • After one node in the cluster crashes, the other nodes crash in quick succession.

  • JVM crash after switching to Oracle thin jdbc driver
    #  SIGSEGV (0xb) at pc=0x063966c3, pid=11885, tid=638315408
    # Problematic frame:
    # V  [libjvm.so+0x3966c3]
    #
    Current thread (0x0a013c00):  JavaThread "main" [_thread_in_vm, id=11897, stack(0x2606e000,0x260bf000)]
    
    siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x00000000
    
    
    Stack: [0x2606e000,0x260bf000],  sp=0x260ba1c8,  free space=304k
    Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
    V  [libjvm.so+0x3966c3]
    C  [libocijdbc11.so+0x4d67]  Java_oracle_jdbc_driver_T2CConnection_t2cSetSessionTimeZone+0x57
    j  oracle.jdbc.driver.T2CConnection.t2cSetSessionTimeZone(JLjava/lang/String;)I+0
    j  oracle.jdbc.driver.T2CConnection.logon()V+825
    j  oracle.jdbc.driver.PhysicalConnection.<init>(Ljava/lang/String;Ljava/util/Properties;Loracle/jdbc/driver/OracleDriverExtension;)V+323
    j  oracle.jdbc.driver.T2CConnection.<init>(Ljava/lang/String;Ljava/util/Properties;Loracle/jdbc/driver/OracleDriverExtension;)V+4
    j  oracle.jdbc.driver.T2CDriverExtension.getConnection(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;+34
    j  oracle.jdbc.driver.OracleDriver.connect(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;+296
    j  org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(Ljavax/security/auth/Subject;Ljavax/resource/spi/ConnectionRequestInfo;)Ljavax/resource/spi/ManagedConnection;+113
    .. ..
    
    Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
    j  oracle.jdbc.driver.T2CConnection.t2cSetSessionTimeZone(JLjava/lang/String;)I+0
    j  oracle.jdbc.driver.T2CConnection.logon()V+825
    j  oracle.jdbc.driver.PhysicalConnection.<init>(Ljava/lang/String;Ljava/util/Properties;Loracle/jdbc/driver/OracleDriverExtension;)V+323
    j  oracle.jdbc.driver.T2CConnection.<init>(Ljava/lang/String;Ljava/util/Properties;Loracle/jdbc/driver/OracleDriverExtension;)V+4
    j  oracle.jdbc.driver.T2CDriverExtension.getConnection(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;+34
    j  oracle.jdbc.driver.OracleDriver.connect(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;+296
    j  org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(Ljavax/security/auth/Subject;Ljavax/resource/spi/ConnectionRequestInfo;)Ljavax/resource/spi/ManagedConnection;+113
    

Environment

  • Oracle JDBC thin (Java) driver version 11.2.0.1.0
  • Oracle JDBC OCI driver 11.2
  • Oracle/Sun JDK 1.6.0_u13

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In