hitting Assertion !callout_active(&tp->t_callout) failed at /usr/src/sys/netinet/tcp_subr.c:2386 after 62d47d7
- Reply: Dave Cottlehuber: "Re: hitting Assertion !callout_active(&tp->t_callout) failed at /usr/src/sys/netinet/tcp_subr.c:2386 after 62d47d7"
- In reply to: Richard Scheffenegger : "git: 62d47d73b7eb - main - tcp: stop timers and clean scoreboard in tcp_close()"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 12 Feb 2024 08:31:19 UTC
On Sat, 10 Feb 2024, at 09:34, Richard Scheffenegger wrote: > The branch main has been updated by rscheff: > > URL: > https://cgit.FreeBSD.org/src/commit/?id=62d47d73b7eb01f3b0a37541df5e7aaa36f54335 > > commit 62d47d73b7eb01f3b0a37541df5e7aaa36f54335 > Author: Richard Scheffenegger <rscheff@FreeBSD.org> > AuthorDate: 2024-02-10 09:28:42 +0000 > Commit: Richard Scheffenegger <rscheff@FreeBSD.org> > CommitDate: 2024-02-10 09:30:00 +0000 > > tcp: stop timers and clean scoreboard in tcp_close() > > Stop timers when in tcp_close() instead of doing that in tcp_discardcb(). > A connection in CLOSED state shall not need any timers. Assert that no > timer is rescheduled after that in tcp_timer_activate() and verfiy that > this is also the expected state in tcp_discardcb(). > > PR: 276761 > Reviewed By: glebius, tuexen, #transport > Sponsored by: NetApp, Inc. > Differential Revision: https://reviews.freebsd.org/D43792 > --- > sys/netinet/tcp_subr.c | 4 ++-- > sys/netinet/tcp_timer.c | 1 + > 2 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c > index 6043a3d458e5..90e1496a822c 100644 > --- a/sys/netinet/tcp_subr.c > +++ b/sys/netinet/tcp_subr.c > @@ -2383,10 +2383,9 @@ tcp_discardcb(struct tcpcb *tp) > #endif > > INP_WLOCK_ASSERT(inp); > + MPASS(!callout_active(&tp->t_callout)); I'm repeatedly hitting this assert soon after boot on my ryzen desktop. I've a coredump. Panic String: Assertion !callout_active(&tp->t_callout) failed at /usr/src/sys/netinet/tcp_subr.c:2386 I'll apply your latest patch in https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=276761#c16 and report back.. __curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:57 57 __asm("movq %%gs:%P1,%0" : "=r" (td) : "n" (offsetof(struct pcpu, (kgdb) #0 __curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:57 #1 doadump (textdump=textdump@entry=0) at /usr/src/sys/kern/kern_shutdown.c:403 #2 0xffffffff804a39da in db_dump (dummy=<optimized out>, dummy2=<optimized out>, dummy3=<optimized out>, dummy4=<optimized out>) at /usr/src/sys/ddb/db_command.c:590 #3 0xffffffff804a37e0 in db_command (last_cmdp=<optimized out>, cmd_table=<optimized out>, dopager=false) at /usr/src/sys/ddb/db_command.c:503 #4 0xffffffff804a3926 in db_command_script ( command=command@entry=0xffffffff817b9724 <db_recursion_data+84> "dump") at /usr/src/sys/ddb/db_command.c:568 #5 0xffffffff804a8c88 in db_script_exec ( scriptname=scriptname@entry=0xfffffe0346e96680 "kdb.enter.panic", warnifnotfound=warnifnotfound@entry=0) at /usr/src/sys/ddb/db_script.c:301 #6 0xffffffff804a8ab2 in db_script_kdbenter (eventname=<optimized out>) at /usr/src/sys/ddb/db_script.c:323 #7 0xffffffff804a6b81 in db_trap (type=<optimized out>, code=<optimized out>) at /usr/src/sys/ddb/db_main.c:266 #8 0xffffffff80ba2aa2 in kdb_trap (type=type@entry=3, code=code@entry=0, tf=tf@entry=0xfffffe0346e969c0) at /usr/src/sys/kern/subr_kdb.c:790 #9 0xffffffff81057fd6 in trap (frame=0xfffffe0346e969c0) at /usr/src/sys/amd64/amd64/trap.c:606 #10 <signal handler called> #11 kdb_enter (why=<optimized out>, msg=<optimized out>) at /usr/src/sys/kern/subr_kdb.c:556 #12 0xffffffff80b532d6 in vpanic ( fmt=0xffffffff8120a0cb "Assertion %s failed at %s:%d", ap=ap@entry=0xfffffe0346e96bf0) at /usr/src/sys/kern/kern_shutdown.c:961 #13 0xffffffff80b53163 in panic ( fmt=0xffffffff81980440 <cnputs_mtx> "\202\221\024\201\377\377\377\377") at /usr/src/sys/kern/kern_shutdown.c:889 #14 0xffffffff80d585e1 in tcp_discardcb (tp=tp@entry=0xfffff808d767ca80) at /usr/src/sys/netinet/tcp_subr.c:2386 #15 0xffffffff80d64e81 in tcp_usr_detach (so=0xfffff8012ccd0780) at /usr/src/sys/netinet/tcp_usrreq.c:214 #16 0xffffffff80c05151 in sofree (so=0xfffff8012ccd0780) at /usr/src/sys/kern/uipc_socket.c:1205 #17 sorele_locked (so=so@entry=0xfffff8012ccd0780) at /usr/src/sys/kern/uipc_socket.c:1232 #18 0xffffffff80c05fad in soclose (so=0xfffff8012ccd0780) at /usr/src/sys/kern/uipc_socket.c:1302 #19 0xffffffff80aed71b in fo_close (fp=0xfffff8064b7362d0, td=0x80) at /usr/src/sys/sys/file.h:390 #20 _fdrop (fp=fp@entry=0xfffff8064b7362d0, td=0x80, td@entry=0xfffff8012cc91000) at /usr/src/sys/kern/kern_descrip.c:3666 #21 0xffffffff80af0f83 in closef (fp=fp@entry=0xfffff8064b7362d0, td=td@entry=0xfffff8012cc91000) at /usr/src/sys/kern/kern_descrip.c:2839 #22 0xffffffff80af4ea6 in closefp_impl (fdp=0xfffffe02e1a24430, fd=95, fp=0xfffff8064b7362d0, td=0xfffff8012cc91000, audit=true) at /usr/src/sys/kern/kern_descrip.c:1315 #23 0xffffffff81059473 in syscallenter (td=0xfffff8012cc91000) at /usr/src/sys/amd64/amd64/../../kern/subr_syscall.c:186 #24 amd64_syscall (td=0xfffff8012cc91000, traced=0) at /usr/src/sys/amd64/amd64/trap.c:1192 #25 <signal handler called> #26 0x00003069693b76da in ?? () Backtrace stopped: Cannot access memory at address 0x30696c9b9818 (kgdb) (END) A+ Dave ——— O for a muse of fire, that would ascend the brightest heaven of invention!