A fix is available
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