Deadlock on SocketChannel During JDBC Connection
(Doc ID 2531973.1)
Last updated on APRIL 04, 2021
Applies to:
JDBC - Version 12.1.0.2.0 and laterInformation in this document applies to any platform.
Symptoms
JDBC 12.1.0.2 connection fails with a deadlock.
1LKDEADLOCK Deadlock detected !!!
NULL ---------------------
NULL
2LKDEADLOCKTHR Thread "InterruptTimer" (0x00000000305D1D00)
3LKDEADLOCKWTR is waiting for:
4LKDEADLOCKMON sys_mon_t:0x00000001260FF6B8 infl_mon_t: 0x00000001260FF700:
4LKDEADLOCKOBJ java/lang/Object@0x00000000E3C88F58
3LKDEADLOCKOWN which is owned by:
2LKDEADLOCKTHR Thread "JobCourier7" (0x00000000305D4E00)
3LKDEADLOCKWTR which is waiting for:
4LKDEADLOCKMON sys_mon_t:0x00000001260FF508 infl_mon_t: 0x00000001260FF550:
4LKDEADLOCKOBJ java/lang/Thread$ThreadLock@0x00000000E0791DE8
3LKDEADLOCKOWN which is owned by:
2LKDEADLOCKTHR Thread "InterruptTimer" (0x00000000305D1D00)
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
3XMTHREADINFO "InterruptTimer" J9VMThread:0x00000000305D1D00, j9thread_t:0x0000000121095B70, java/lang/Thread:0x00000000E3C75AA8, state:B, prio=5
3XMJAVALTHREAD (java/lang/Thread getId:0xAF, isDaemon:true)
3XMTHREADINFO1 (native thread ID:0x6B0023D, native priority:0x5, native policy:UNKNOWN, vmstate:B, vm thread flags:0x00000201)
3XMCPUTIME CPU usage total: 0.009449000 secs, user: 0.005123000 secs, system: 0.004326000 secs, current category="Application"
3XMTHREADBLOCK Blocked on: java/lang/Object@0x00000000E3C88F58 Owned by: "JobCourier7" (J9VMThread:0x00000000305D4E00, java/lang/Thread:0x00000000E0791838)
3XMHEAPALLOC Heap bytes allocated since last GC cycle=0 (0x0)
3XMTHREADINFO3 Java callstack:
4XESTACKTRACE at java/nio/channels/spi/AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:245)
4XESTACKTRACE at java/nio/channels/spi/AbstractInterruptibleChannel$1.interrupt(AbstractInterruptibleChannel.java:176)
5XESTACKTRACE (entered lock: java/lang/Object@0x00000000E3CF5278, entry count: 1)
4XESTACKTRACE at java/lang/Thread.interrupt(Thread.java:559)
5XESTACKTRACE (entered lock: java/lang/Thread$ThreadLock@0x00000000E0791DE8, entry count: 1)
4XESTACKTRACE at oracle/net/nt/TimeoutInterruptHandler$InterruptTask.run(TimeoutInterruptHandler.java:152)
4XESTACKTRACE at java/util/TimerThread.mainLoop(Timer.java:566)
4XESTACKTRACE at java/util/TimerThread.run(Timer.java:516)
3XMTHREADINFO3 Native callstack:
4XENATIVESTACK _event_wait+0x344 (0x090000000052C3C8 [libpthread.a+0x173c8])
4XENATIVESTACK _cond_wait_local+0x4dc (0x090000000053A920 [libpthread.a+0x25920])
4XENATIVESTACK _cond_wait+0xc8 (0x090000000053AF0C [libpthread.a+0x25f0c])
4XENATIVESTACK pthread_cond_wait+0x19c (0x090000000053BB60 [libpthread.a+0x26b60])
4XENATIVESTACK (0x0900000002412F64 [libj9thr28.so+0x7f64])
4XENATIVESTACK (0x0900000002412478 [libj9thr28.so+0x7478])
4XENATIVESTACK (0x09000000022DAA38 [libj9vm28.so+0x15a38])
4XENATIVESTACK (0x09000000022D974C [libj9vm28.so+0x1474c])
4XENATIVESTACK (0x09000000022FBD80 [libj9vm28.so+0x36d80])
4XENATIVESTACK (0x090000000239C9D8 [libj9vm28.so+0xd79d8])
4XENATIVESTACK (0x09000000023153CC [libj9vm28.so+0x503cc])
4XENATIVESTACK (0x09000000022C7AB4 [libj9vm28.so+0x2ab4])
4XENATIVESTACK (0x090000000242BC80 [libj9prt28.so+0x2c80])
4XENATIVESTACK (0x09000000022C78D4 [libj9vm28.so+0x28d4])
4XENATIVESTACK (0x090000000240E85C [libj9thr28.so+0x385c])
4XENATIVESTACK _pthread_body+0xf0 (0x0900000000518E14 [libpthread.a+0x3e14])
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
3XMTHREADINFO "JobCourier7" J9VMThread:0x00000000305D4E00, j9thread_t:0x0000000123662068, java/lang/Thread:0x00000000E0791838, state:B, prio=5
3XMJAVALTHREAD (java/lang/Thread getId:0x25, isDaemon:false)
3XMTHREADINFO1 (native thread ID:0x14303AD, native priority:0x5, native policy:UNKNOWN, vmstate:B, vm thread flags:0x00000201)
3XMCPUTIME CPU usage total: 0.267175000 secs, user: 0.212196000 secs, system: 0.054979000 secs, current category="Application"
3XMTHREADBLOCK Blocked on: java/lang/Thread$ThreadLock@0x00000000E0791DE8 Owned by: "InterruptTimer" (J9VMThread:0x00000000305D1D00, java/lang/Thread:0x00000000E3C75AA8)
3XMHEAPALLOC Heap bytes allocated since last GC cycle=0 (0x0)
3XMTHREADINFO3 Java callstack:
4XESTACKTRACE at java/lang/Thread.blockedOn(Thread.java:1088)
4XESTACKTRACE at java/lang/Access.blockedOn(Access.java:41)
4XESTACKTRACE at java/nio/channels/spi/AbstractInterruptibleChannel.blockedOn(AbstractInterruptibleChannel.java:229)
4XESTACKTRACE at java/nio/channels/spi/AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:216)
4XESTACKTRACE at sun/nio/ch/SocketChannelImpl.connect(SocketChannelImpl.java:673)
5XESTACKTRACE (entered lock: java/lang/Object@0x00000000E3C88F58, entry count: 1)
5XESTACKTRACE (entered lock: java/lang/Object@0x00000000E3C88F68, entry count: 1)
5XESTACKTRACE (entered lock: java/lang/Object@0x00000000E3C88F78, entry count: 1)
4XESTACKTRACE at java/nio/channels/SocketChannel.open(SocketChannel.java:200)
4XESTACKTRACE at oracle/net/nt/TimeoutSocketChannel.<init>(TimeoutSocketChannel.java:81)
4XESTACKTRACE at oracle/net/nt/TcpsNTAdapter.connect(TcpsNTAdapter.java:186)
4XESTACKTRACE at oracle/net/nt/ConnOption.connect(ConnOption.java:161)
4XESTACKTRACE at oracle/net/nt/ConnStrategy.execute(ConnStrategy.java:470)
4XESTACKTRACE at oracle/net/resolver/AddrResolution.resolveAndExecute(AddrResolution.java:521)
4XESTACKTRACE at oracle/net/ns/NSProtocol.establishConnection(NSProtocol.java:660)
4XESTACKTRACE at oracle/net/ns/NSProtocol.connect(NSProtocol.java:286)
4XESTACKTRACE at oracle/jdbc/driver/T4CConnection.connect(T4CConnection.java:1438)
4XESTACKTRACE at oracle/jdbc/driver/T4CConnection.logon(T4CConnection.java:518)
4XESTACKTRACE at oracle/jdbc/driver/PhysicalConnection.connect(PhysicalConnection.java:688)
4XESTACKTRACE at oracle/jdbc/driver/T4CDriverExtension.getConnection(T4CDriverExtension.java:39)
4XESTACKTRACE at oracle/jdbc/driver/OracleDriver.connect(OracleDriver.java:691)
4XESTACKTRACE at java/sql/DriverManager.getConnection(DriverManager.java:675)
4XESTACKTRACE at java/sql/DriverManager.getConnection(DriverManager.java:258)
JDBC connection string is of the form jdbc:oracle:thin:@(DESCRIPTION=(FAILOVER=on)(CONNECT_TIMEOUT=5)(TRANSPORT_CONNECT_TIMEOUT=3000)(RETRY_COUNT=3)(ADDRESS_LIST=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCPS)(HOST=<HOSTNAME1>)(PORT=<PORT>)(SECURITY=(SSL_SERVER_CERT_DN=\"<NAME>")))(ADDRESS=(PROTOCOL=TCPS)(HOST=<HOSTNAME2>)(PORT=<PORT>)(SECURITY=(SSL_SERVER_CERT_DN=\"<NAME>"))))(CONNECT_DATA=(SERVICE_NAME= <SERVICE_NAME>)))
This is happening on AIX platform with JRE with these details:
JAVAVERSION JRE 1.8.0 AIX ppc64-64 build (pap6480sr1-20150417_01(SR1) )
VMVERSION VM build R28_Java8_SR1_20150410_1531_B243669
JITVERSION tr.r14.java_20150402_88976.03
GCVERSION GC - R28_Java8_SR1_20150410_1531_B243669_CMPRSS
JITMODES JIT enabled, AOT enabled, FSD disabled, HCR disabled
RUNNINGAS Running as a standalone JVM
Changes
Cause
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
In this Document
Symptoms |
Changes |
Cause |
Solution |
References |