IBM Support

PK88578: TCP RESET OCCURS AT CLIENT WHEN RECEIVING HTTP RESPONSE FROM CICS. 09/09/17 PTF PEREMOVE

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • You are migrating your application from CICS/TS 3.1 to
    CICS/TS 3.2.  Your application sends an HTTP/1.0 request
    containing a large amount of data across a non-SSL connection.
    Content-Length is set to 6590.
    The client application is poorly behaved because it is appending
    vast amounts of binary zeroes (as well as a trailing CRLF) to
    every HTTP request it sends.  CICS initially issues a socket
    socket receive for up to 4K of data. If all the reqeust
    (including the unexpected trailing nulls) fits in the buffer
    then all will be ok.  If there is a large request (for example
    Content-length of 6590) then CICS will initially receive 4K then
    it will receive the residual data for the whole 6590 of HTTP
    body.  However, this leaves several hundred bytes of unexpected
    nulls on the socket.
    As the request is HTTP 1.0 and does not include a keepalive
    header CICS will close the socket after the HTTP response is
    sent. Just before closing the socket CICS checks to see if
    there is any excess inbound data on the socket.
    CICS detects the data, GETMAINS a SOSOPRBF buffer then calls
    soso_recv_mainline to receive the data passing two key
    key parameters -
    maxlength := buffer_len
    minimum_data_length := buffer_len
    These are both references to the same field.
    soso_recv_mainline stashes the minimum_data_length value
    away before setting it to 0. This effectively sets maxlength
    to 0 at the same time (as there are 2 references to the same
    field).
    This results in our passing a good buffer pointer to TCPIP but a
    bad buffer length of 0.  We never receive any of the
    garbage nulls off the socket before closing the socket.  This
    causes TCPIP to flow a RST back to the client when CICS
    peforms the physical socket close.
    This is not a problem in CICS TS 3.1 before PK68858.
    Additional Symptom(s) Search Keyword(s):
    KIXREVSCB
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All CICS Users.                              *
    ****************************************************************
    * PROBLEM DESCRIPTION: A client of the CICS Web Interface      *
    *                      received a reset (RST) from TCP/IP for  *
    *                      MVS when CICS closed the socket.        *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    An HTTP 1.0 request is sent to CICS that has excess inbound data
    that is not part of HTTP body (as designated by the HTTP
    Content-length header). On the processing of the HTTP request
    CICS then fails to purge any excess inbound data off of the
    socket. The result is that TCPIP then flows a RESET back to the
    HTTP client when CICS performs a physical socket close.
    
    The maxlength of the buffer associated with this purge was being
    set incorrectly to 0.
    

Problem conclusion

  • DFHSOS07 has been amended so that during the purge of the excess
    sockets data the correct maxlength is passed to TCPIP.
    

Temporary fix

  • FIX AVAILABLE BY PTF ONLY
    

Comments

APAR Information

  • APAR number

    PK88578

  • Reported component name

    CICSTS V3 Z/OS

  • Reported component ID

    5655M1500

  • Reported release

    500

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2009-06-11

  • Closed date

    2009-07-30

  • Last modified date

    2009-09-17

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    PK89616 PK89616 UK48833

Modules/Macros

  •    DESSOSO  DFHSOSOC 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

    CICSTS V3 Z/OS

  • Fixed component ID

    5655M1500

Applicable component levels

  • R500 PSY UK48833

       UP09/08/05 P F908

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":"3.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":"3.2","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
17 September 2009