[comp.protocols.tcp-ip] What is correct FTP server response to perm I/O error?

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