A fix is available
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