...I tried yesterday some accept (& read some) & close/exit type
stressing but I couldn't get it to show up (though I'll try longer
time later on and also fault style exiting).
Do I understand you correctly... it doesn't explain the tenth case out
of ten but just nine of them?
Main problem with this explanation is that congestion control modules are
only in use when TCP is in ESTABLISHED and transmitting normally, while it
has nothing to do how we enter or leave ESTABLISHED.
But if it's really that the process who owned the connection already went
away, I think we should end up into tcp_close() which changes the state
from established (and send RST too if there's still data to be received,
which would be picked up by the other end and that end would no longer
keep established either). ...A failure to send the reset would show up in
LINUX_MIB_TCPABORTFAILED. Because both ends remain in established, it kind
of excludes the possibility that something would have accidently allowed
the Recv-Q end to return back to established too (due to some bug).
To me there are mainly two weird things:
1) Why we see orphaning with data in the first place (I think distcc would
be interested to read everything, unless some worker crashed in early...
Though some timeout in distcc could explain it as well but I don't know
too well how distcc does everything)...
2) Why the connection is still in ESTABLISHED when it was orphaned and
it has some data to receive... If it had some unread data, should be in
CLOSE or in FIN_WAIT1 otherwise.
--
i.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html