Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 Feb 2024 08:31:19 +0000
From:      "Dave Cottlehuber" <dch@FreeBSD.org>
To:        "Richard Scheffenegger" <rscheff@FreeBSD.org>
Cc:        transport@freebsd.org, dev-commits-src-main@freebsd.org
Subject:   hitting Assertion !callout_active(&tp->t_callout) failed at /usr/src/sys/netinet/tcp_subr.c:2386 after 62d47d7
Message-ID:  <e8721b3e-75bd-49c4-bfc2-76ac7c53deb8@app.fastmail.com>
In-Reply-To: <202402100934.41A9Y11l044213@gitrepo.freebsd.org>
References:  <202402100934.41A9Y11l044213@gitrepo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 10 Feb 2024, at 09:34, Richard Scheffenegger wrote:
> The branch main has been updated by rscheff:
>
> URL:=20
> https://cgit.FreeBSD.org/src/commit/?id=3D62d47d73b7eb01f3b0a37541df5e=
7aaa36f54335
>
> 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()
>   =20
>     Stop timers when in tcp_close() instead of doing that in tcp_disca=
rdcb().
>     A connection in CLOSED state shall not need any timers. Assert tha=
t no
>     timer is rescheduled after that in tcp_timer_activate() and verfiy=
 that
>     this is also the expected state in tcp_discardcb().
>   =20
>     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
>=20
>  	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/s=
rc/sys/netinet/tcp_subr.c:2386

I'll apply your latest patch in https://bugs.freebsd.org/bugzilla/show_b=
ug.cgi?id=3D276761#c16 and report back..

__curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:57
57              __asm("movq %%gs:%P1,%0" : "=3Dr" (td) : "n" (offsetof(s=
truct pcpu,
(kgdb) #0  __curthread () at /usr/src/sys/amd64/include/pcpu_aux.h:57
#1  doadump (textdump=3Dtextdump@entry=3D0)
    at /usr/src/sys/kern/kern_shutdown.c:403
#2  0xffffffff804a39da in db_dump (dummy=3D<optimized out>,
    dummy2=3D<optimized out>, dummy3=3D<optimized out>, dummy4=3D<optimi=
zed out>)
    at /usr/src/sys/ddb/db_command.c:590
#3  0xffffffff804a37e0 in db_command (last_cmdp=3D<optimized out>,
    cmd_table=3D<optimized out>, dopager=3Dfalse)
    at /usr/src/sys/ddb/db_command.c:503
#4  0xffffffff804a3926 in db_command_script (
    command=3Dcommand@entry=3D0xffffffff817b9724 <db_recursion_data+84> =
"dump")
    at /usr/src/sys/ddb/db_command.c:568
#5  0xffffffff804a8c88 in db_script_exec (
    scriptname=3Dscriptname@entry=3D0xfffffe0346e96680 "kdb.enter.panic",
    warnifnotfound=3Dwarnifnotfound@entry=3D0) at /usr/src/sys/ddb/db_sc=
ript.c:301
#6  0xffffffff804a8ab2 in db_script_kdbenter (eventname=3D<optimized out=
>)
    at /usr/src/sys/ddb/db_script.c:323
#7  0xffffffff804a6b81 in db_trap (type=3D<optimized out>, code=3D<optim=
ized out>)
    at /usr/src/sys/ddb/db_main.c:266
#8  0xffffffff80ba2aa2 in kdb_trap (type=3Dtype@entry=3D3, code=3Dcode@e=
ntry=3D0,
    tf=3Dtf@entry=3D0xfffffe0346e969c0) at /usr/src/sys/kern/subr_kdb.c:=
790
#9  0xffffffff81057fd6 in trap (frame=3D0xfffffe0346e969c0)
    at /usr/src/sys/amd64/amd64/trap.c:606
#10 <signal handler called>
#11 kdb_enter (why=3D<optimized out>, msg=3D<optimized out>)
    at /usr/src/sys/kern/subr_kdb.c:556
#12 0xffffffff80b532d6 in vpanic (
    fmt=3D0xffffffff8120a0cb "Assertion %s failed at %s:%d",
    ap=3Dap@entry=3D0xfffffe0346e96bf0) at /usr/src/sys/kern/kern_shutdo=
wn.c:961
#13 0xffffffff80b53163 in panic (
    fmt=3D0xffffffff81980440 <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=3Dtp@entry=3D0xfffff808d767c=
a80)
    at /usr/src/sys/netinet/tcp_subr.c:2386
#15 0xffffffff80d64e81 in tcp_usr_detach (so=3D0xfffff8012ccd0780)
    at /usr/src/sys/netinet/tcp_usrreq.c:214
#16 0xffffffff80c05151 in sofree (so=3D0xfffff8012ccd0780)
    at /usr/src/sys/kern/uipc_socket.c:1205
#17 sorele_locked (so=3Dso@entry=3D0xfffff8012ccd0780)
    at /usr/src/sys/kern/uipc_socket.c:1232
#18 0xffffffff80c05fad in soclose (so=3D0xfffff8012ccd0780)
    at /usr/src/sys/kern/uipc_socket.c:1302
#19 0xffffffff80aed71b in fo_close (fp=3D0xfffff8064b7362d0, td=3D0x80)
    at /usr/src/sys/sys/file.h:390
#20 _fdrop (fp=3Dfp@entry=3D0xfffff8064b7362d0, td=3D0x80,
    td@entry=3D0xfffff8012cc91000) at /usr/src/sys/kern/kern_descrip.c:3=
666
#21 0xffffffff80af0f83 in closef (fp=3Dfp@entry=3D0xfffff8064b7362d0,
    td=3Dtd@entry=3D0xfffff8012cc91000) at /usr/src/sys/kern/kern_descri=
p.c:2839
#22 0xffffffff80af4ea6 in closefp_impl (fdp=3D0xfffffe02e1a24430, fd=3D9=
5,
    fp=3D0xfffff8064b7362d0, td=3D0xfffff8012cc91000, audit=3Dtrue)
    at /usr/src/sys/kern/kern_descrip.c:1315
#23 0xffffffff81059473 in syscallenter (td=3D0xfffff8012cc91000)
    at /usr/src/sys/amd64/amd64/../../kern/subr_syscall.c:186
#24 amd64_syscall (td=3D0xfffff8012cc91000, traced=3D0)
    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
=E2=80=94=E2=80=94=E2=80=94
O for a muse of fire, that would ascend the brightest heaven of inventio=
n!



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?e8721b3e-75bd-49c4-bfc2-76ac7c53deb8>