
Daniel P. Berrange wrote:
On Tue, Feb 02, 2010 at 11:58:44AM +0100, Jim Meyering wrote:
coverity complained (rightly) about the risk of closing a negative file descriptor. However, the real problem was the missing test for a failed "accept" call. I'm not 100% sure that a failed accept call deserves to provoke a "goto cleanup", but doing that is consistent with what the nearby code does upon epoll_ctl failure.
This isn't correct because the incoming client can quit between the time of poll() indicating its presence, and accept() trying to process it. This is an expected non-fatal scenario, so it should just be ignored without quitting. epoll_ctl() by comparison is a fatal system error, so has to be handled as an unrecoverable error
Ok, so some errno values are ignorable. Do you also want to ignore the likes of EMFILE, ENFILE, EPERM, etc? Otherwise, I propose to enumerate "ignorable-errno" values and treat any others as unrecoverable. Do you know which errno values should be ignored?