IBM Support

PI58324: FAILURE TO FREE SOCKSEND LOCK LEADS TO MULTIPLE ASOB ABENDS

A fix is available

Subscribe

You can track all active APARs for this component.

 

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