A fix is available
APAR status
Closed as program error.
Error description
During shutdown of the CHIN the user receives an ABEND0C4 ( CSQXCCMX+OFFSET) as MQ attempts to free storage which is already freed. Development finds that there is a defect in the serialisation between the receive and async threads of a SHARECNV > 0 multiplexed SVRCONN channel. The CHIN is told to stop and the async consumer notifier task ends. This results in a flag being set in the xGWA which results in future requests to add an async signaller from async threads being rejected with an internal return code. When this happens, the async thread notifies the receive thread which results in message CSQX772E being issued with MQRC 2202 (MQRC_CONNECTION_QUIESCING). If the receive thread receives this notification while trying to resume an async thread consumer, then the receive thread can incorrectly determine that the async thread is ending. This can later result in the receive thread freeing storage required by the async thread while it is still active. The exact sequence of events which follow this are again predicated on certain timing conditions between the receive and async threads. Development expects this problem can only occur during CHIN/QMGR shutdown, and will always be accompanied by message CSQX772E being issued with MQRC=2202 (MQRC_CONNECTION_QUIESCING). It is suspected that this problem could also result in slightly different 0C4 abends depending on how the freed storage is reused.
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All users of IBM MQ for z/OS Version 9 * * Release 2 Modification 0 and * * Release 3 Modification 0. * **************************************************************** * PROBLEM DESCRIPTION: Abend 0C4 occurs in CSQXCCMX during * * channel initiator shutdown when client * * connections are active. * **************************************************************** The asynchronous consumer task for a client connection detected the channel initiator was shutting down, and attempted to return an error to the receiver task for the same connection as part of the response to a 'resume' request. This led to the receiver task incorrectly marking the consumer as inactive. Later on in channel termination processing, the receive thread did not perform the expected serialisation with the asynchronous consumer task due to this incorrect state and proceeded to free control blocks associated with the channel. When the asynchronous task regained control of the dispatcher, a timing condition meant that it did not detect the channel termination correctly, and attempted to reference freed storage resulting in the reported abend.
Problem conclusion
The communication between the receiver task and asynchronous task has been changed so that the consumer state is not incorrectly set to inactive, with the result that the serialisation between these tasks at channel termination will now work as intended.
Temporary fix
Comments
APAR Information
APAR number
PH60014
Reported component name
IBM MQ Z/OS V9
Reported component ID
5655MQ900
Reported release
200
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2024-02-26
Closed date
2024-06-13
Last modified date
2024-07-01
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UI97307 UI97308
Modules/Macros
CSQXRSTM
Fix information
Fixed component name
IBM MQ Z/OS V9
Fixed component ID
5655MQ900
Applicable component levels
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":"BU048","label":"IBM Software"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"200","Line of Business":{"code":"LOB67","label":"IT Automation \u0026 App Modernization"}}]
Document Information
Modified date:
02 July 2024