A fix is available
APAR status
Closed as program error.
Error description
Within an outbound connection pooling environment, a task sitting in SOCKET SEND suspend is attempted to be terminated via a KILL command. ABEND AKKA is issued due to the KILL command and Message DFHSO0001 is attempted to be issued but is suppressed by the KILL processing. The log shows: DFHME0139 Message DFHSO0001 has been suppressed by KILL processing. This is followed by message: DFHSO0002 A severe error (code X'029F') has occurred in module DFHSOCK. This first DFHSO0002 dump shows the SOCKSEND lock was freed during the Functional Recovery routine of DFHSOS06, however the in_send flag was left on. Normal error processing continues then eventually DFHWBCL places the socket back into the pool for later use. The application carries on normally but is not actually killed. The application then issues another INVOKE SERVICE command and the same socket gets allocated from the pool. When processing gets to DFHSOS06 again, the SOCKSEND lock is acquired but the in_send flag is found to be on so the send function returns an exception and critically fails to release the lock. The socket gets put back into the pool for reuse again. The application again isues another INVOKE SERVICE command and the same socket gets allocated from the pool. Now when processing gets to DFHSOS06 the attempt to get the SOCKSEND lock fails with DUPLICATE_LOCK_OWNER and an ASOB abend is issued, causing the task to end. Now the KE_NUM slot that was being used also has inherited to SOCKSEND lock. This leads to multiple ASOB abends anytime a task is assigned this KE_NUM slot and requests the SOCKSEND lock. This can also eventually lead to a deadlock scneario between the SOCKSEND and SOMGLOCK. NOTE: This problem is only possible with outbound connection pooling being used in conjunction with a KILL command being issued during SOCKET SEND suspend. Additional Symptom(s) Search Keyword(s): KIXREVDWZ
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: All CICS users. * **************************************************************** * PROBLEM DESCRIPTION: Abend ASOB at offset X'173C' in * * DFHSOS06. * **************************************************************** * RECOMMENDATION: * **************************************************************** CICS is being used as a web service requester with outbound HTTP connection pooling in effect. A transaction issues an INVOKE SERVICE command using SSL to a server that becomes unresponsive. This causes the socket send to wait and eventually time out. In the reporting customers case, CEKL SET TASK FORCEPURGE and CEKL SET TASK KILL were issued against the task. This causes the DFHSOS06 recovery routine to be driven. This releases the SOCKSEND lock, but does not turn off the socket's in_send flag. DFHSOCK reports an INTERNAL_LOGIC_ERROR and returns a disaster response, but the task continues. However, as the socket's in_send bit is left on, subsequent sends fail with a SOCKET_IN_USE exception, and does not release the SOCKSEND lock. The INVOKE SERVICE call returns a TIMEDOUT response. The task then issues another INVOKE SERVICE command and the same socket is allocated from the pool. DFHSOS06 attempts to get the SOCKSEND lock, but this fails DUPLICATE_LOCK_OWNER and an ASOB abend occurs. Further ASOB abends may occur, and CICS may end up in a deadlock on the SOCKSEND and SOMGLOCK locks. Additional keywords: SO0001 SO0002
Problem conclusion
DFHSOS06 has been modified to ensure that if a failure occurs during a send, the socket's in_send flag is turned off. Additionally, DFHSOS06 will always release the SOCKSEND lock if an error occurs during a send.
Temporary fix
********* * HIPER * ********* FIX AVAILABLE BY PTF ONLY
Comments
APAR Information
APAR number
PI58324
Reported component name
CICS TS Z/OS V5
Reported component ID
5655Y0400
Reported release
900
Status
CLOSED PER
PE
NoPE
HIPER
YesHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2016-03-01
Closed date
2016-05-17
Last modified date
2016-06-02
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
PI61505 UI37997
Modules/Macros
DFHSOS00 DFHSOS01 DFHSOS02 DFHSOS03 DFHSOS04 DFHSOS05 DFHSOS06 DFHSOS07 DFHSOS08 DFHSOS09 DFHSOS10 DFHSOS11 DFHSOS12 DFHSOS13 DFHSOS14 DFHSOS15 DFHSOS16 DFHSOS17 DFHSOS18 DFHSOS19 DFHSOS20 DFHSOS21 DFHSOS22 DFHSOS23
Fix information
Fixed component name
CICS TS Z/OS V5
Fixed component ID
5655Y0400
Applicable component levels
R900 PSY UI37997
UP16/05/27 P F605 ¢
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":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSGMGV","label":"CICS Transaction Server"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"5.2","Edition":"","Line of Business":{"code":"LOB35","label":"Mainframe SW"}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"5.2","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
02 June 2016