Search code examples
javaoracle-databasejbossinstantclient

JBoss crashes on libclient64.dylib access


I´m trying to get Oracle instantclient up and running on OS X with Java 1.6.0_65. I did all steps described in the Oracle documentation: https://docs.oracle.com/cd/E11882_01/install.112/e38228/toc.htm but the problem keeps the same:

Invalid memory access of location 0x0 rip=0x106369f87

The stack trace is:

Process:               java [6234]
Path:                  /Library/Java/JavaVirtualMachines/jdk1.6.0_65.jdk/Contents/Home/bin/java
Identifier:            com.apple.javajdk16.cmd
Version:               1.0 (1.0)
Code Type:             X86-64 (Native)
Parent Process:        sh [6222]
Responsible:           Terminal [1179]
User ID:               33291

PlugIn Path:             /Library/Java/JavaVirtualMachines/jdk1.6.0_65.jdk/Contents/Home/bundle/Libraries/libclient64.dylib
PlugIn Identifier:       libclient64.dylib
PlugIn Version:          ??? (1)

Date/Time:             2015-07-28 11:22:49.211 +0200
OS Version:            Mac OS X 10.10.4 (14E46)
Report Version:        11
Anonymous UUID:        54BA4C92-323A-644A-55CF-CDBEDA054F4E


Time Awake Since Boot: 5500 seconds

Crashed Thread:        27  Java: main

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000000

VM Regions Near 0:
--> 
    __TEXT                 0000000106233000-000000010623b000 [   32K] r-x/rwx SM=COW  /Library/Java/JavaVirtualMachines/jdk1.6.0_65.jdk/Contents/Home/bin/java

Application Specific Information:
Java information:
 Exception type: Bus Error (0xa) at pc=106369f87

 Java VM: Java HotSpot(TM) 64-Bit Server VM (20.65-b04-462 mixed mode macosx-amd64)

Current thread (7fddcf86d800):  JavaThread "main" [_thread_in_vm, id=309616640, stack(112646000,112746000)]
Stack: [112646000,112746000]
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
....

I tried with both 32 and 64 versions. I did it using the appropriate client version together with either activating or deactivating the -d32 flag on the application start.

Both seam to have the same problem.

Does anyone has an idea what can be wrong here?

Thanks

UPDATE:

I replaced OCI by THIN and moved the crash ahead.

jdbc:oracle:thin:@${dbserver:our.domain.de}:${dbport:1234}:${dbsid:OURSID}
jdbc:oracle:oci:@(description=(ADDRESS=(COMMUNITY=tcp.world)(PROTOCOL=TCP)(Host=our.domain.de)(Port=1521))(connect_data=(sid=OURSID)))

It crashes now after reading of the data sources:

12:53:52,490 INFO  [ConnectionProviderFactory] Initializing connection provider: org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider
12:53:52,490 INFO  [InjectedDataSourceConnectionProvider] Using provided datasource
Invalid memory access of location 0x0 rip=0x10ff50f87

Solution

  • AFAIK client libs were not well maintained by Oracle and they simply did not support the newest OS X version - for years. They crashed on Mac

    Try to use 12c drivers. But when even thin drivers crash your JVM, then there must be something wrong with your Java installation. Maybe you have multiple JDBC drivers in your classpath?