> kernel: 2.6.14.2 > 2.6.14.6 > 2.6.17.8 > (and probably others) > ... > 13:44:26.226312 send(45, "GG\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 147, 0) = -1 ECONNRESET (Connection reset by peer) <0.000016> > => 13:44:26.226437 select(1024, NULL, [45], NULL, {5, 0}) = 0 (Timeout) <4.999663> > > After an ECONNRESET the fd should (still) be considered writable by > select(). Got no reaction so far. I can reproduce the above with a C program. While trying to figure out what is exactly happening I noticed something in fs/select.c on top of do_select(): #define POLLIN_SET (POLLRDNORM | POLLRDBAND | POLLIN | POLLHUP | POLLERR) #define POLLOUT_SET (POLLWRBAND | POLLWRNORM | POLLOUT | POLLERR) #define POLLEX_SET (POLLPRI) POLLOUT_SET includes POLLERR. So isn't tcp_poll() supposed to tell the upper layers about the ECONNRESET error? -- Frank - To unsubscribe from this list: send the line "unsubscribe linux-net" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html