IBM Support

IT03569: A WEBSPHERE MQ MANAGED FILE TRANSFER PROTOCOL BRIDGE AGENT MAY DEADLOCK WHEN AN ACTIVE TRANSFER REQUEST IS CANCELLED

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • A WebSphere MQ Managed File Transfer protocol bridge agent
    acting as the destination agent for a transfer may
    encounter a deadlock when cancelling an outstanding transfer. A
    thread dump of the protocol bridge taken at the time of the
    problem will not report a deadlock, but will show three threads
    with a stacks similar to these:
    .
    TransferReceiver(414d5120...)
     at com/ibm/wmqfte/transfer/frame/impl/
     TransferFrameReceiverImpl$ChunkProcessor.stop
     (TransferFrameReceiverImpl.java:156(Compiled Code))
     at com/ibm/wmqfte/transfer/frame/impl/
     TransferFrameReceiverImpl.waitForOutstandingIO
     (TransferFrameReceiverImpl.java:1006(Compiled Code))
     at com/ibm/wmqfte/transfer/impl/TransferReceiverRunnable.run
     (TransferReceiverRunnable.java:781(Compiled Code))
     ...
    .
    FileIOWorker
     at java/lang/Object.wait(Native Method))
     at java/lang/Object.wait(Object.java:167(Compiled Code))
     at com/ibm/wmqfte/transfer/frame/impl/
     TransferFrameReceiverImpl.writeComplete
     (TransferFrameReceiverImpl.java:792(Compiled Code))
     at com/ibm/wmqfte/transfer/frame/impl/
     TransferFrameReceiverImpl.writeSlice
     (TransferFrameReceiverImpl.java:540(Compiled Code))
     at com/ibm/wmqfte/transfer/frame/impl/
     TransferFrameReceiverImpl.processChunk
     (TransferFrameReceiverImpl.java:478(Compiled Code))
     at com/ibm/wmqfte/transfer/frame/impl/
     ...
    .
    CommandHandlerWorker
     at java/lang/Object.wait(Native Method))
     at java/lang/Object.wait(Object.java:196(Compiled Code))
     at java/lang/Thread.join(Thread.java:618)
     at com/ibm/wmqfte/transfer/impl/TransferReceiverImpl.
     waitForThreadToEnd(TransferReceiverImpl.java:262)
     at com/ibm/wmqfte/transfer/impl/TransferReceiverImpl.
     cancel(TransferReceiverImpl.java:246)
     at com/ibm/wmqfte/statestore/impl/FTEStateStoreImpl.
     cancelTransfer(FTEStateStoreImpl.java:3777)
     at com/ibm/wmqfte/cmdhandler/impl/
     FTECommandHandlerStateStoreImpl.processInternalCommand()
     ...
    

Local fix

  • Restart the agent using the command:
    
    fteStopAgent -i
    

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects all users of WebSphere MQ Managed File
    Transfer 7.5.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    A deadlock situation could have occurred when a transfer
    cancellation request was processed by the destination agent for
    a file transfer that had nearly completed. The steps that would
    lead to the deadlock were as follows:
    
      - The TransferReceiver thread passed all of the remaining file
    data to the FileIOWorker thread to be written to the destination
    file
      - The FileIOWorker thread has written sufficient file data to
    require a transfer checkpoint (but more file data remained to be
    written)
      - The FileIOWorker thread prepared a transfer checkpoint then
    continued to write the remaining, final file data to the
    destination file
      - At a similar time, the TransferReceiver thread processed a
    transfer cancellation request before the first checkpoint was
    ready. As such, this thread did not write the checkpoint
    prepared by the FileIOWorker thread to the agent's
    SYSTEM.FTE.STATE queue.
      - The TransferReceiver thread then waited for the FileIOWorker
    thread to finish writing the file data it was currently
    processing and stop
      - The FileIOWorker finished writing the last of the file data
    and attempted to prepare the final, end of transfer checkpoint
      - However the FileIOWorker thread could not prepare the final
    checkpoint until the previous one was written and waits for the
    TransferReceiver thread to complete the previous checkpoint.
    
    Herein is the deadlock. Both the FileIOWorker thread and the
    TransferReceiver thread are waiting on each other to take an
    action before they can continue.
    

Problem conclusion

  • The WebSphere MQ Managed File Transfer code has been updated
    such that the FileIOWorker thread does not block before
    preparing a new checkpoint when the transfer is being cancelled.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v7.5       7.5.0.5
    
    The latest available FTE maintenance can be obtained from
    'Fix List for WebSphere MQ File Transfer Edition 7.0'
    http://www-01.ibm.com/support/docview.wss?uid=swg27015313
    
    The latest available MQ maintenance can be obtained from
    'WebSphere MQ Recommended Fixes'
    http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006037
    
    If the maintenance level is not yet available information on
    its planned availability can be found in 'WebSphere MQ
    Planned Maintenance Release Dates'
    http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006309
    ---------------------------------------------------------------
    

Temporary fix

Comments

APAR Information

  • APAR number

    IT03569

  • Reported component name

    WMQ FTE

  • Reported component ID

    5724H7242

  • Reported release

    750

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2014-08-04

  • Closed date

    2014-09-23

  • Last modified date

    2014-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

    WMQ FTE

  • Fixed component ID

    5724H7242

Applicable component levels

  • R750 PSY

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSCUHLE","label":"WMQ Managed File Transfer"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.5","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
23 September 2014