On 11/22/2013 12:53 PM, Shawn Landden wrote: > Hello, when running the attached program on 3.12 child processes > are missing a socket fd opened, set with SO_REUSEPORT, listen()ed to, > and added to epoll_ctl(). > > This is the output I get when pointing "wget http://localhost:5555/" > at the attached program: > > main PID 31591 > PID 31634 started > PID 31634 accept()ed connection > PID 31635 started > PID 31636 started > PID 31635 accept() failed: Bad file descriptor > PID 31636 accept() failed: Bad file descriptor > PID 31634 accept()ed connection > PID 31634 accept()ed connection > PID 31634 accept()ed connection > PID 31634 accept()ed connection > > > While I would expect something like: > > main PID 31591 > PID 31634 started > PID 31634 accept()ed connection > PID 31635 started > PID 31636 started > PID 31635 accept()ed connection > PID 31636 accept()ed connection > > -more new processes, but inversely proportional to number of listening processes > -accept() always returns successfully > > The 'close(sockfd);' looks to be racing with the accept() calls. Removing seems to get the result you are looking for. Thanks, -Jason -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html