IBM Support

IV76044: DEADLOCK OBSERVED WHILE INTERRUPTING A THREAD DOING SOCKETCHANNEL.READ()

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Error Message: Deadlock occurred when a thread doing
    
    java.nio.channels.SocketChannel.read() is interrupted by another
    thread.
    .
    Stack Trace: Thread-6" J9VMThread:0x00000000007AB300,
    j9thread_t:0x00007F5CB011C6D0,
    java/lang/Thread:0x00000000FFEB7FD8,
    Blocked on: java/lang/Thread$ThreadLock@0x00000000FFEB80B0 Owned
    by: "main" (J9VMThread:0x0000000000643500,
    java/lang/Thread:0x00000000E003A648)
    Java callstack:
    at java/lang/Thread.blockedOn(Thread.java:1088)
    at java/lang/Access.blockedOn(Access.java:41)
    at
    java/nio/channels/spi/AbstractInterruptibleChannel.blockedOn(Abs
    tractInterruptibleChannel.java:229)
    at
    java/nio/channels/spi/AbstractInterruptibleChannel.end(AbstractI
    nterruptibleChannel.java:216)
    at sun/nio/ch/SocketChannelImpl.poll(SocketChannelImpl.java:970)
       (entered lock: java/lang/Object@0x00000000FFEC9ED0, entry
    count: 1)
    at
    sun/nio/ch/SocketAdaptor$SocketInputStream.read(SocketAdaptor.ja
    va:216)
       (entered lock: java/lang/Object@0x00000000FFEC9EC0, entry
    count: 1)
    at
    sun/nio/ch/ChannelInputStream.read(ChannelInputStream.java:115)
       (entered lock:
    sun/nio/ch/SocketAdaptor$SocketInputStream@0x00000000FFECA700,
    entry count: 1)
    at
    java/nio/channels/Channels$ReadableByteChannelImpl.read(Channels
    .java:396)
       (entered lock: java/lang/Object@0x00000000FFECA948, entry
    count: 1)
    "main" J9VMThread:0x0000000000643500,
    j9thread_t:0x0000000000609060,
    java/lang/Thread:0x00000000E003A648,
    Blocked on: java/lang/Object@0x00000000FFEC9EC0 Owned by:
    "Thread-6" (J9VMThread:0x00000000007AB300,
    java/lang/Thread:0x00000000FFEB7FD8)
    Java callstack:
    at
    java/nio/channels/spi/AbstractSelectableChannel.implCloseChannel
    (AbstractSelectableChannel.java:245)
    at
    java/nio/channels/spi/AbstractInterruptibleChannel$1.interrupt(A
    bstractInterruptibleChannel.java:176)
       (entered lock: java/lang/Object@0x00000000FFEC9EA0, entry
    count: 1)
    at java/lang/Thread.interrupt(Thread.java:559)
       (entered lock:
    java/lang/Thread$ThreadLock@0x00000000FFEB80B0, entry count: 1)
    .
    

Local fix

Problem summary

  • The deadlock occurred due to a lock contention between
    SocketChannel read and interrupt threads when a thread
    reading data from a socket channel is interrupted by another
    thread.
    

Problem conclusion

  • JDK NIO channel code is updated to avoid the lock contention
    between SocketChannel read and interrupt threads.
    .
    This APAR will be fixed in the following Java Releases:
       8    SR2       (8.0.2.0)
    .
    Contact your IBM Product's Service Team for these Service
    Refreshes and Fix Packs.
    For those running stand-alone, information about the available
    Service Refreshes and Fix Packs can be found at:
               https://www.ibm.com/developerworks/java/jdk/
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV76044

  • Reported component name

    JAVA CLASS LIBS

  • Reported component ID

    620700130

  • Reported release

    800

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2015-08-14

  • Closed date

    2015-09-23

  • Last modified date

    2015-09-23

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    JAVA CLASS LIBS

  • Fixed component ID

    620700130

Applicable component levels

  • R800 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSNVBF","label":"Runtimes for Java Technology"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.0","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
21 February 2022