A fix is available
APAR status
Closed as program error.
Error description
FTP Client is using PASV to open a passive connection. In the case when the connection was not used because of a failing situation (where a failing reply code was sent back to the client), an extra reply was being sent to the client when the passive connection closed. Traces showed messages: FTSUTL050I Send reply '550 'SFSPOOL1 yyy' not found' FTSUTL050I Send reply 'Unknown message number 538568
Local fix
MT02922
Problem summary
**************************************************************** * USERS AFFECTED: All z/VM FTP server users using PASV * * support. * **************************************************************** * PROBLEM DESCRIPTION: Problems occur in the z/VM FTP server * * when processing passive data * * connections (initiated with the FTP * * client PASV command). * **************************************************************** * RECOMMENDATION: APPLY PTF * **************************************************************** When an FTP client uses PASV to open a passive connection and the connection is not used because of a failing situation (where a failing reply code is sent back to the client), the z/VM FTP server sends an extra reply ('Unknown message number nnnnnn' (where nnnnnn is a number)) to the client when the passive connection closes. This causes the client and server to be out of sequence with each other. The problem occurs in the DataReply() procedure in FTSUTIL PASCAL, which is called to send the reply to the command that needed the data connection. At the time DataReply() is called in a failing situation, the unsuccessful reply has already been sent to the FTP client and the CmdInProgress field in the control connection structure has already been set to CUNKNOWN. The DataReply() procedure contains no logic to see if a reply has already been sent, and it also contains no logic to handle an unknown command. So the message number used in the reply is never set causing the message number field to be garbage which causes the message compiler to return the 'Unknown message number nnnnnn' reply, which is sent to the client. An additional problem occurs in the z/VM FTP server if an FTP client attempts to follow a client initiated data transaction (using the PASV command) with a server initiated data transaction (using the PORT command). In this case, the FTP server will disregard the PORT command and wait for the client to initiate the data connection. This problem occurs because the BeActive field in the control connection structure (which indicates whether the FTP server should initiate a data connection) is not reset (after the PASV connection is processed) to indicate a default of an FTP server initiated data connection (given in the File Transfer Protocol RFC (959)).
Problem conclusion
The z/VM FTP server was changed to not send a reply in the DataReply() procedure if the CmdInProgress is CUNKNOWN. Since the CmdInProgress has been set to CUNKNOWN when a failing situation occurs, the FTP server no longer sends an extra reply to the FTP client. In addition, the z/VM FTP server was changed to default to an FTP server initiated data connection after a client initiated data connection is processed by setting the BeActive field on when the passive data connection closes in CloseCompletedEvent in FTSEVEN PASCAL. This allows the FTP server to successfully process both client and server initiated data connections in any order.
Temporary fix
Comments
APAR Information
APAR number
PQ56305
Reported component name
TCP/IP V2 FOR V
Reported component ID
5735FAL00
Reported release
320
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2002-01-04
Closed date
2002-03-18
Last modified date
2004-09-27
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UQ64188 UQ64189 UQ64190 UQ64191
Modules/Macros
FTSEVEN FTSUTIL MSFTP SRVRFTP
Fix information
Fixed component name
TCP/IP V2 FOR V
Fixed component ID
5735FAL00
Applicable component levels
R3A0 PSY UQ64188
UP02/03/21 P 0402
R320 PSY UQ64189
UP02/03/21 I 1000
R410 PSY UQ64190
UP02/03/21 I 1000
R420 PSY UQ64191
UP02/03/21 P 0303
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":"SG27N","label":"APARs - VM\/ESA environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"320","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG27M","label":"APARs - z\/VM environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"320","Edition":"","Line of Business":{"code":"LOB16","label":"Mainframe HW"}}]
Document Information
Modified date:
27 September 2004