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, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content