A fix is available
APAR status
Closed as program error.
Error description
Change Team finds failure occurred in an gsk_secure_socket_write SSL I/O module CSQXQIOC issued an cciBufferOutput call via routine cciSKWRite. The buffered I/O functions in csqxccib were called for cciBufferOutput, bufferManage, and bufferResize. As part of the bufferResize processing a call was made to ccxAllocMem to obtain storage for the re-sized buffer before a csqx_bpqy_get_header query call to retrieve the buffer pool header. Query buffer pool module csqxbpqy handled the call, initially setting up addressability to control blocks such as the DWA (addressed off the channel initiator's XEB control block) however the DWA pointer in the XEB can not be relied upon during SSL processing (in this case containing a null pointer) During lock group processing a compare/swap instruction was employed to set the lock in the pool header. As the pool header was addressed off of the DWA the CS failed with the abend reported here. ADDITIONAL SYMPTOMS : ABEND0C4 and/or ABEND5C6 - 00E70052
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: * * All users of IBM MQ for z/OS Version 9 Release 0 * * Modification 0. * **************************************************************** * PROBLEM DESCRIPTION: * * Message CSQX153E CSQXSERV SSL server subtask ended * * abnormally, * * reason=0C4000-00000004, during SSL send processing. * **************************************************************** * RECOMMENDATION: * * None * **************************************************************** During SSL send processing module csqxqioc issues a cciBufferOutput call from routine cciSKWrite. The buffered i/o functions in csqxccib are called for cciBufferOutput, cciBufferManage and, as pSSLSENDBUFFER is null, bufferResize to obtain an SSL send buffer. A suitable buffer is found on the free chain and re-used. If a suitable buffer had not been found fresh storage would have been obtained on a 4k boundary for a new buffer pool. A csqx_bpqy_get_header call is then issued by bufferResize to locate the buffer pool header, passing the address of the buffer just obtained. Module csqxbpqy first sets up addressability to critical control blocks such as the DWA, which it addresses off the channel initiator XEB control block. However the DWA pointer in the XEB can not be relied upon during SSL processing, and in this case contains a null pointer, so the DWA is based on low-core storage. The pool header for this re-used buffer does not start on a 4k boundary, and can not be found by rounding down the passed buffer address, so csqxbpqy has to scan all the buffer chains to locate the passed buffer, and it's corresponding pool header. As part of this scan processing, lock_group is called and uses a compare and swap instruction to set the lock in the pool header. As the pool header is addressed off the DWA, the compare and swap fails with the reported ABEND0C4. CSQX153E !QMGR CSQXSERV SSL server subtask ended abnormally, TCB=xxxxxxxx reason=0C4000-00000004
Problem conclusion
Query buffer pool module csqxbpqy is updated to address the DWA by other means when the pointer to it in the XEB is zero.
Temporary fix
Comments
APAR Information
APAR number
PI73778
Reported component name
MQ Z/OS V9
Reported component ID
5655MQ900
Reported release
000
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2016-12-14
Closed date
2017-02-28
Last modified date
2017-04-11
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UI45092
Modules/Macros
CSQXBPQY none
Fix information
Fixed component name
MQ Z/OS V9
Fixed component ID
5655MQ900
Applicable component levels
R000 PSY UI45092
UP17/03/30 P F703
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":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.0","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
11 April 2017