HEADS UP: tcp wrongly persist timer detection
Matthew Dillon
dillon at apollo.backplane.com
Thu Jan 13 20:29:00 PST 2011
:Hi all,
:
:HEAD users only.
:
:It could panic your system upon TCP activities, so please backup your
:working kernel :). If the panic happens, please send us the link to
:the core dumps.
:
:Thank you for your help in advance.
:
:Best Regards,
:sephe
Crater crunched on this. I could not get a core dump but I was
able to get a backtrace.
In the particular crash I got it appears that a tcp timer callout
occurs (I believe it was the persist timer but now I'm not sure) and
the connection is dropped. tcp_drop() is called which:
tp->t_state = TCPS_CLOSED;
tcp_output(tp);
And that triggered the panic:
tcp_setpersist: not established yet
I do not know what state the connection was in prior to that point.
I have adjusted the conditionals in my local source tree to not panic
if the connection is in TCPS_CLOSED but I haven't commited this as I
do not know whether it is correct or not.
Unfortunately I don't know how the persist was meant to work (or not)
prior to entering an ESTABLISHED state.
-Matt
More information about the Users
mailing list