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 ---------- Forwarded message ---------- From: Sepherosa Ziehau <se...@crater.dragonflybsd.org> Date: Tue, Dec 21, 2010 at 5:11 PM Subject: git: tcp: Don't allow persist timer if TCP connection is not established yet To: comm...@crater.dragonflybsd.org commit 94603b1beafe1a82c4e61c095b5dcd978c5e8d58 Author: Sepherosa Ziehau <se...@dragonflybsd.org> Date: Tue Dec 21 16:26:34 2010 +0800 tcp: Don't allow persist timer if TCP connection is not established yet This probably could move the un-updated snd_nxt panic earlier. The dump of the panic in http://bugs.dragonflybsd.org/issue1939 shows - snd_nxt is less than snd_una - A persist timer was fired (frame 16, tp->tt_msg->tt_prev_tasks). - The TCP segment triggered the panic has SYN|ACK (frame 17, th->th_flags). This TCP segment is considered as valid (frame 17, list), so tp->t_state was SYN_SENT. This explains why snd_nxt is less than snd_una: If tcp_output() is called by persist timer, then the persist timer is active and the "forced" is turned on, this causes the snd_nxt not updated at all. MISSING CHIAN IN THE LINK: How is the persist timer got set in the SYN_SENT in the first place? Hope the new panic could lift the veil... Summary of changes: sys/netinet/tcp_output.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/94603b1beafe1a82c4e61c095b5dcd978c5e8d58 -- DragonFly BSD source repository -- Tomorrow Will Never Die