IBM Support

PQ54076: DURING A PUT FROM AN FTP CLIENT, FIN SENT ON DATA CONNECTION IF CLIENT IS TERMINATED

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • If, during a PUT from an FTP OS/390 client to a remote
    host, the FTP client is suddently terminated - the TCPIP stack
    will send to the remote server a FIN.
     Termination of the FTP client can be for a number of reasons,
    but a common reason is that while a data transfer was in
    progress and data was being transferred on the data connection
    from Client to Server, the FTP Client job was cancelled.
     When this occurs, TCPIP sends a FIN to the remote server
    and when FIN is received, remote server does not know that the
    transfer is not complete and processes the FIN as a normal end
    of file.
     It is not until the server attempts to read the next command
    from the client that an error is detected.
     Upon establishing the data connection with the remote server
    for a PUT, FTP should be setting up the connection that a
    reset (RST) is sent if the application goes away.
    .
    Additional Symptoms:
      Client Fails on a put and size of received file is smaller
        than file transferred.
      When server attempts to read next command,
        they will generally get a RC 1121,
         EDC8121I Connection reset.
    .
    Following is a trace on the server where an OS/390 was
    cancelled while transfer in progess. Note failure being
    detected after PUT (ie. store_data) had been processed.
    .
    progressReport:     3317760 bytes transferred
    progressReport:     6451200 bytes transferred
    seq_close_file: close file=
    seq_close_file: file closed
    data_close: shutdown(ds 9)
    dataClose: recv(ds 9) timer(120)
    data_close: close(ds 9)
    store_data: @ exit rc_write=0 ret_code=0
      fio_status=0 abend & reason=000-00 Wrt/Rd ErrorText=
    store_data: @ exit rc_close=0 ret_code=0 abend
      & reason=000-00 Close ErrorText=
    write_smf_record: entering write_smf_record with type 5.
    write_smf_record: return code 0 from smfwr.
    store_data:      9747635 bytes transferred
    get_command: select rc is 1
    get_command: received -1 bytes
    get_command: recv() rc -1: error (1121/76657242)
      - EDC8121I Connection reset.
    end_session: Ending session 000E6350
    parse_cmd : return code -1 from get_command
    main: server thread terminates rc = -1.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All users of the Communications Server       *
    *                 for OS/390 Release 8 and 10 IP and           *
    *                 for z/OS Version 1 Release 2 IP: FTP         *
    ****************************************************************
    * PROBLEM DESCRIPTION: During a PUT from an FTP OS/390 client  *
    *                      to a remote host, if the client is      *
    *                      suddenly terminated the TCPIP stack     *
    *                      will send a FIN to the remote server.   *
    *                      When the FIN is received, the remote    *
    *                      server does not detect that the         *
    *                      transfer is not complete and processes  *
    *                      the FIN as a normal end of file.        *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    When data is being sent outbound, PUT from the FTP client
    or GET from the FTP server, if the data connection is
    terminated, the system closes the data connection
    for the FTP application.  This causes a FIN to be sent.  This
    can be misleading on the receiving side, because it may
    interpret the FIN as a valid EOF and not detect any error.  The
    FTP client and server need to set SO_LINGER with a timeout
    value of 0 on the data connection socket, so that the TCP/IP
    stack will generate a reset if the connection is closed by the
    system.  That way the receiving side is notified of the error
    prior to doing the next receive.
    +-------------------------------------------------------------+
    + Please check our Communications Server for OS/390 homepages +
    + for common networking tips and fixes.  The URL for these    +
    + homepages can be found in Informational APAR II11334.       +
    +-------------------------------------------------------------+
    

Problem conclusion

  • The FTP client and server have been modified to set SO_LINGER
    with a timeout value of zero on that data connection.  Prior to
    a normal close of the data connection, the server and client
    will set SO_LINGER off, so that a reset is not generated by
    the TCP/IP stack for normal close.
    
    * Cross Reference between External and Internal Names
    EZAFTPSR (FTPDRPLY)  PREFTPCX (EZAFTPCX)  PREFTPLS (EZAFTPLS)
    EZAFTPSR (FTPDRPLY)  PREFTPCX (EZAFTPCX)  PREFTPLS (EZAFTPLS)
    EZAFTPSR (FTPDRPLY)  PREFTPCX (EZAFTPCX)  PREFTPLS (EZAFTPLS)
    

Temporary fix

Comments

APAR Information

  • APAR number

    PQ54076

  • Reported component name

    TCP/IP V3 MVS

  • Reported component ID

    5655HAL00

  • Reported release

    50A

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2001-10-29

  • Closed date

    2001-12-05

  • Last modified date

    2002-05-07

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

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

    UQ60836 UQ60837 UQ60838

Modules/Macros

  • EZAFTPCX EZAFTPLS EZAFTPSC EZAFTPSR
    

Fix information

  • Fixed component name

    TCP/IP V3 MVS

  • Fixed component ID

    5655HAL00

Applicable component levels

  • R120 PSY UQ60836

       UP02/01/24 P F201

  • R380 PSY UQ60837

       UP02/01/24 P F201

  • R50A PSY UQ60838

       UP02/01/24 P F201

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":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"50A","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SSCY4DZ","label":"DO NOT USE"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"50A","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
07 May 2002