IBM Support

PH50960: MQ Z/OS : 0C4-11 ABEND AT CSQILPLM.CSQMHDRS FOR SHARECNV > 0 CHANNELS 22/11/17 PTF PECHANGE

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The 0C4 abend as below occurred during an MQGET from a queue Q1
    from an async consumer thread for a conversation on a channel
    CHL1. The adapter had retrieved a message from the queue and
    was copying an RFH2 into the async consumer buffer. The abend
    occurred because the buffer had been freed.
    CHINIT trace shows that the buffer was being used by two async
    consumer threads at the same time which is unexpected. When one
    of the threads needed to get a bigger buffer to hold a new
    message, it freed the old buffer. This left the second async
    consumer referencing a now freed buffer.
    The trace shows that the problem occurred when a previous
    conversation freed the same buffer twice. Between the two
    frees, another async consumer thread obtained the buffer which
    resulted in the buffer being on the free chain while being in
    use.
    Other symptoms of this problem are MQGETs failing with
    MQRC_BUFFER_ERROR, incorrect or corrupt messages being returned
    on MQGETs and 0C4 abends in CSQXBPQY. This problem only applies
    to consumers from SHARECNV > 0 channels.
    DUMP TITLE=CSQ1,ABN=0C4-00000011,U=CSQ1CHIN,C=MQ900.9XX.MMC
    -QMHDRS,M=CSQGFRCV,LOC=CSQILPLM.CSQMHDRS
    DUMP TITLE=CSQ1,ABN=0C4-00000011,C=MQ900.9XX.CHIN,
    M=CSQXDISP,LOC=CSQXRCTL.CSQXBPQY
    This problem is a rare timing window and is a regression caused
    by APAR PH44463/PTF UI82256.
    search keyword ABEND0C4
    

Local fix

  • n/a
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All users of IBM MQ for z/OS Version 9       *
    *                 Release 1 Modification 0, Release 2          *
    *                 Modification 0 and Release 3 Modification 0. *
    ****************************************************************
    * PROBLEM DESCRIPTION: A timing window exists whereby multiple *
    *                      channel initiator (CHIN) async consume  *
    *                      threads can obtain the same message     *
    *                      buffer. This scenario can result in 0C4 *
    *                      abends in CSQMHDRS and CSQXBPQY,        *
    *                      MQRC_BUFFER_ERROR being returned on     *
    *                      MQGETs and incorrect or corrupt         *
    *                      messages being returned on MQGETs. This *
    *                      problem will be accompanied by an       *
    *                      earlier CSQX206E message for the        *
    *                      channel.                                *
    *                                                              *
    *                      This problem only applies to consumers  *
    *                      making client connections on SHARECNV > *
    *                      0 SVRCONN channels.                     *
    ****************************************************************
    APAR PH44463 fixed a problem where an async consume thread
    leaked a message buffer. Unfortunately the change introduced a
    timing window where the message buffer could now be freed twice.
    If another async consume thread obtains the message buffer
    between the two frees, then the message buffer will be on a free
    chain while in active use by an async consume thread.
    
    Depending on the order of events which follow, this state can
    lead to a variety of follow on problems. If the buffer is freed
    back to the system from the free chain, then the async consume
    thread can experience 0C4 abends when using the buffer. If
    instead a second async consume thread obtains the buffer from
    the free chain, then this can result in either thread returning
    corrupt or invalid messages to the client on MQGET calls.
    

Problem conclusion

  • The channel initiator async consume thread logic which frees
    message buffers has been corrected to only free a message buffer
    once.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH50960

  • Reported component name

    IBM MQ Z/OS V9

  • Reported component ID

    5655MQ900

  • Reported release

    100

  • Status

    CLOSED PER

  • PE

    YesPE

  • HIPER

    YesHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2022-11-16

  • Closed date

    2022-12-07

  • Last modified date

    2023-01-03

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

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

    UI83602 UI83603 UI83604

Modules/Macros

  • CSQXRSTM
    

Fix information

  • Fixed component name

    IBM MQ Z/OS V9

  • Fixed component ID

    5655MQ900

Applicable component levels

  • R100 PSY UI83604

       UP22/12/23 P F212 ­

  • R200 PSY UI83603

       UP22/12/23 P F212 ­

  • R300 PSY UI83602

       UP22/12/23 P F212 ­

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"100","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
05 January 2023