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