On Mon, Aug 16, 2010 at 10:56:18AM +0900, Simon Horman wrote:
Thanks Eric,
I should be able to track the problem down from here.
I'm currently (finishing) travelling, but I hope to have time to look into
this some time this week.
Hi Eric,
unfortunately I didn't have time that week. And now that I do have
time I'm still left scratching my head.
What I suspect is happening is that vanessa_socket_server_accept()
is returning an error because accept() returned an error
and errno was set to EINTR or ECONNABORTED.
The reason that I suspect that is because it would lead to the
error logs that you report - any other error should leave some
more log entries.
However, I'm completely unsure how this could occur, as it
should only happen if the socket is marked non-blocking,
which it isn't.
With this in mind I am supplying two alternate patches.
* 1.patch just adds some more debuging information which ought to be able
to confirm or refute my suspicion. And in the latter case, provide some
extra information that may help locate the problem.
* 2.patch adds the same debugging information as 1.patch and also
alters the error handling in the case where my suspicion is correct. The
error handling is changed so that perdition just tries to accept again
(i.e. wait for another connection) rather than exiting. This ought to be
safe, but as I'm a bit unsure about what is going on you may prefer not
to run it in a production environment, which I why I also supplied
1.patch.