ENOMEM on socket writes

From: Paul Mackerras (paulus@linuxcare.com.au)
Date: Thu Jan 11 2001 - 20:13:59 EST


Using 2.4, and the prereleases since about early December or so, I
have been seeing rsync dying with an error "write: unable to allocate
memory". Rsync is writing on a socket which is set non-blocking and
the write is apparently returning ENOMEM.

Is this actually a new behaviour, or just something which was possible
all along but which has been made more likely by the recent VM
changes?

>From the point of view of the application, ENOMEM is a little hard to
deal with constructively. Select will say that the socket is
writable, so there doesn't seem to be a good way of waiting until the
write has a chance of succeeding. About the only thing that I can see
to do is just to spin trying the write over and over - does anyone
have a better idea?

Paul.

-- 
Paul Mackerras, Open Source Research Fellow, Linuxcare, Inc.
+61 2 6262 8990 tel, +61 2 6262 8991 fax
paulus@linuxcare.com.au, http://www.linuxcare.com.au/
Linuxcare.  Support for the revolution.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Jan 15 2001 - 21:00:32 EST