cam@SATURN.ACC.COM (Chris Markle acc_gnsc) (12/29/89)
Folks, I asked this question once already and got a grand total of zero responses; being a glutton for punishment/abuse I respectfully try again: How should FTP server that is receiving data (eg. STOR, STOU) respond after encountering a permanent I/O error. More specifically, how should that server close the data connection in response to the permanent I/O error? Let me outline a scenario... An FTP client initiates a STOR to our server and begins to send 100 megabytes. The data set that is the STOR target is one measly disk track, so we have an "out of space condition". We send the apropriate 4xx or 5xx response over the control connection, but then what? Our current scheme is issue a non-abortive close of the data connection. The problem with this is that the remote end keeps sending the whole 100 MB which we are now just throwing away. This can take quite a while if the client is sending lots of data. You might say "well just issue an abortive close (ie. TCP RST)" but that seems to cause certain clients to close the control connection as well! (One of these clients is 4.3 BSD ftp which we definitely need to work with). The Host Reqs RFC provides no enlightenment about this situation. The FTP RFC provides the following "guidance" (from RFC 959): (Page 19) - "The server MUST close the data connection under the following conditions: ... 5. An irrecoverable error condition occurs.", and (Page 45) - "Any time either the user or server see that the connection is being closed by the other side, it should promptly read any remaining data queued on the connection and issue the close on its own side." I would interpret this to mean that the sender of the 100MB should "detect" our graceful close and should cease sending and issue the close on the sender's side. This raises the question of whether something like BSD Unix can "detect" the close. Are clients that close the control connection when the data connection is reset broken? How should this situation be handled between FTP servers and clients? Chris Markle ACC (Advanced Computer Communications) cam@saturn.acc.com (301)290-8100