When running java/nio/channels/FileChannel/InterruptDeadlock.java against 8u412 on Ubuntu armhf the test deadlocks with the following stack trace:
----
command: main InterruptDeadlock
reason: Assumed action based on file name: run main InterruptDeadlock
Mode: othervm
Timeout information:
Running jstack on process 135991
2024-07-24 04:05:37
Full thread dump OpenJDK Client VM (25.412-b08 mixed mode):
"Attach Listener" #57 daemon prio=9 os_prio=0 tid=0xe3004c00 nid=0x21383 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
"Thread-48" #56 prio=5 os_prio=0 tid=0xe2d12000 nid=0x21373 waiting for monitor entry [0xe2b8c000]
java.lang.Thread.State: BLOCKED (on object monitor)
at sun.nio.ch.FileChannelImpl.size(FileChannelImpl.java:301)
- waiting to lock <0xe40385f0> (a java.lang.Object)
at InterruptDeadlock$Reader.run(InterruptDeadlock.java:61)
"Thread-47" #55 prio=5 os_prio=0 tid=0xe2d2ec00 nid=0x21372 waiting for monitor entry [0xe2a9c000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.Thread.blockedOn(Thread.java:241)
- waiting to lock <0xe4038c50> (a java.lang.Object)
at java.lang.System$2.blockedOn(System.java:1267)
at java.nio.channels.spi.AbstractInterruptibleChannel.blockedOn(AbstractInterruptibleChannel.java:211)
at java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:198)
at sun.nio.ch.FileChannelImpl.readInternal(FileChannelImpl.java:740)
at sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:721)
at InterruptDeadlock$Reader.run(InterruptDeadlock.java:57)
"Thread-46" #54 prio=5 os_prio=0 tid=0xe2d2d400 nid=0x21371 waiting for monitor entry [0xe2b3c000]
java.lang.Thread.State: BLOCKED (on object monitor)
at sun.nio.ch.FileChannelImpl.size(FileChannelImpl.java:301)
- waiting to lock <0xe40385f0> (a java.lang.Object)
at InterruptDeadlock$Reader.run(InterruptDeadlock.java:61)
"Thread-45" #53 prio=5 os_prio=0 tid=0xe2d2c000 nid=0x21370 waiting for monitor entry [0xe2aec000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.nio.channels.spi.AbstractInterruptibleChannel$1.interrupt(AbstractInterruptibleChannel.java:160)
- waiting to lock <0xe40385b0> (a java.lang.Object)
at java.nio.channels.spi.AbstractInterruptibleChannel.begin(AbstractInterruptibleChannel.java:173)
at sun.nio.ch.FileChannelImpl.size(FileChannelImpl.java:305)
- locked <0xe40385f0> (a java.lang.Object)
at InterruptDeadlock$Reader.run(InterruptDeadlock.java:61)
"MainThread" #8 prio=5 os_prio=0 tid=0xe2c5e000 nid=0x21343 in Object.wait() [0xe2bdc000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at sun.nio.ch.NativeThreadSet.signalAndWait(NativeThreadSet.java:101)
- locked <0xe40385b8> (a sun.nio.ch.NativeThreadSet)
at sun.nio.ch.FileChannelImpl.implCloseChannel(FileChannelImpl.java:130)
at java.nio.channels.spi.AbstractInterruptibleChannel$1.interrupt(AbstractInterruptibleChannel.java:165)
- locked <0xe40385b0> (a java.lang.Object)
at java.lang.Thread.interrupt(Thread.java:927)
- locked <0xe4038c50> (a java.lang.Object)
at InterruptDeadlock.main(InterruptDeadlock.java:110)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:127)
at java.lang.Thread.run(Thread.java:750)
"Service Thread" #6 daemon prio=9 os_prio=0 tid=0xf6188400 nid=0x21341 runnable [0x00000000]
java.lang.Thread.State: RUNNABLE
"C1 CompilerThread0" #5 daemon prio=9 os_prio=0 tid=0xf6186000 nid=0x21340 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" #4 daemon prio=9 os_prio=0 tid=0xf6182800 nid=0x2133f runnable [0x00000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" #3 daemon prio=8 os_prio=0 tid=0xf6167800 nid=0x2133e in Object.wait() [0xe36fe000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xe44e6a90> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
- locked <0xe44e6a90> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:188)
"Reference Handler" #2 daemon prio=10 os_prio=0 tid=0xf6164c00 nid=0x2133d in Object.wait() [0xe3890000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xe44e6c30> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:502)
at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
- locked <0xe44e6c30> (a java.lang.ref.Reference$Lock)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)
"main" #1 prio=5 os_prio=0 tid=0xf6109400 nid=0x21338 in Object.wait() [0xf62ec000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xe44e6078> (a java.lang.Thread)
at java.lang.Thread.join(Thread.java:1257)
- locked <0xe44e6078> (a java.lang.Thread)
at java.lang.Thread.join(Thread.java:1331)
at com.sun.javatest.regtest.agent.MainWrapper.main(MainWrapper.java:74)
"VM Thread" os_prio=0 tid=0xf615f000 nid=0x2133c runnable
"VM Periodic Task Thread" os_prio=0 tid=0xf618a400 nid=0x21342 waiting on condition
JNI global references: 13
----
----
command: main InterruptDeadlock
reason: Assumed action based on file name: run main InterruptDeadlock
Mode: othervm
Timeout information:
Running jstack on process 135991
2024-07-24 04:05:37
Full thread dump OpenJDK Client VM (25.412-b08 mixed mode):
"Attach Listener" #57 daemon prio=9 os_prio=0 tid=0xe3004c00 nid=0x21383 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
"Thread-48" #56 prio=5 os_prio=0 tid=0xe2d12000 nid=0x21373 waiting for monitor entry [0xe2b8c000]
java.lang.Thread.State: BLOCKED (on object monitor)
at sun.nio.ch.FileChannelImpl.size(FileChannelImpl.java:301)
- waiting to lock <0xe40385f0> (a java.lang.Object)
at InterruptDeadlock$Reader.run(InterruptDeadlock.java:61)
"Thread-47" #55 prio=5 os_prio=0 tid=0xe2d2ec00 nid=0x21372 waiting for monitor entry [0xe2a9c000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.lang.Thread.blockedOn(Thread.java:241)
- waiting to lock <0xe4038c50> (a java.lang.Object)
at java.lang.System$2.blockedOn(System.java:1267)
at java.nio.channels.spi.AbstractInterruptibleChannel.blockedOn(AbstractInterruptibleChannel.java:211)
at java.nio.channels.spi.AbstractInterruptibleChannel.end(AbstractInterruptibleChannel.java:198)
at sun.nio.ch.FileChannelImpl.readInternal(FileChannelImpl.java:740)
at sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:721)
at InterruptDeadlock$Reader.run(InterruptDeadlock.java:57)
"Thread-46" #54 prio=5 os_prio=0 tid=0xe2d2d400 nid=0x21371 waiting for monitor entry [0xe2b3c000]
java.lang.Thread.State: BLOCKED (on object monitor)
at sun.nio.ch.FileChannelImpl.size(FileChannelImpl.java:301)
- waiting to lock <0xe40385f0> (a java.lang.Object)
at InterruptDeadlock$Reader.run(InterruptDeadlock.java:61)
"Thread-45" #53 prio=5 os_prio=0 tid=0xe2d2c000 nid=0x21370 waiting for monitor entry [0xe2aec000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.nio.channels.spi.AbstractInterruptibleChannel$1.interrupt(AbstractInterruptibleChannel.java:160)
- waiting to lock <0xe40385b0> (a java.lang.Object)
at java.nio.channels.spi.AbstractInterruptibleChannel.begin(AbstractInterruptibleChannel.java:173)
at sun.nio.ch.FileChannelImpl.size(FileChannelImpl.java:305)
- locked <0xe40385f0> (a java.lang.Object)
at InterruptDeadlock$Reader.run(InterruptDeadlock.java:61)
"MainThread" #8 prio=5 os_prio=0 tid=0xe2c5e000 nid=0x21343 in Object.wait() [0xe2bdc000]
java.lang.Thread.State: TIMED_WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at sun.nio.ch.NativeThreadSet.signalAndWait(NativeThreadSet.java:101)
- locked <0xe40385b8> (a sun.nio.ch.NativeThreadSet)
at sun.nio.ch.FileChannelImpl.implCloseChannel(FileChannelImpl.java:130)
at java.nio.channels.spi.AbstractInterruptibleChannel$1.interrupt(AbstractInterruptibleChannel.java:165)
- locked <0xe40385b0> (a java.lang.Object)
at java.lang.Thread.interrupt(Thread.java:927)
- locked <0xe4038c50> (a java.lang.Object)
at InterruptDeadlock.main(InterruptDeadlock.java:110)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:127)
at java.lang.Thread.run(Thread.java:750)
"Service Thread" #6 daemon prio=9 os_prio=0 tid=0xf6188400 nid=0x21341 runnable [0x00000000]
java.lang.Thread.State: RUNNABLE
"C1 CompilerThread0" #5 daemon prio=9 os_prio=0 tid=0xf6186000 nid=0x21340 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" #4 daemon prio=9 os_prio=0 tid=0xf6182800 nid=0x2133f runnable [0x00000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" #3 daemon prio=8 os_prio=0 tid=0xf6167800 nid=0x2133e in Object.wait() [0xe36fe000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xe44e6a90> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:144)
- locked <0xe44e6a90> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:165)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:188)
"Reference Handler" #2 daemon prio=10 os_prio=0 tid=0xf6164c00 nid=0x2133d in Object.wait() [0xe3890000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xe44e6c30> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:502)
at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
- locked <0xe44e6c30> (a java.lang.ref.Reference$Lock)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)
"main" #1 prio=5 os_prio=0 tid=0xf6109400 nid=0x21338 in Object.wait() [0xf62ec000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xe44e6078> (a java.lang.Thread)
at java.lang.Thread.join(Thread.java:1257)
- locked <0xe44e6078> (a java.lang.Thread)
at java.lang.Thread.join(Thread.java:1331)
at com.sun.javatest.regtest.agent.MainWrapper.main(MainWrapper.java:74)
"VM Thread" os_prio=0 tid=0xf615f000 nid=0x2133c runnable
"VM Periodic Task Thread" os_prio=0 tid=0xf618a400 nid=0x21342 waiting on condition
JNI global references: 13
----