Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Apr 2018 17:23:06 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 227749] post-panic assertion failed: panic: Assertion (*xp & ~LK_EXCLUSIVE_SPINNERS) == LK_SHARERS_LOCK(1) failed at /usr/src/sys/kern/kern_lock.c:541
Message-ID:  <bug-227749-227@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D227749

            Bug ID: 227749
           Summary: post-panic assertion failed: panic: Assertion (*xp &
                    ~LK_EXCLUSIVE_SPINNERS) =3D=3D LK_SHARERS_LOCK(1) failed
                    at /usr/src/sys/kern/kern_lock.c:541
           Product: Base System
           Version: CURRENT
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: jtl@freebsd.org

Running an INVARIANTS kernel, we saw a kernel panic (in tcp_output(), if it
matters). Then, we tripped over this assertion. Due to the double-fault, the
system rebooted without a coredump.

panic: tcp_output: len <=3D tso_segsz
cpuid =3D 16
time =3D 1524314516
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe0c1bee5=
1f0
vpanic() at vpanic+0x18d/frame 0xfffffe0c1bee5250
vpanic() at vpanic/frame 0xfffffe0c1bee52d0
tcp_output() at tcp_output+0x1f33/frame 0xfffffe0c1bee5490
tcp_do_segment() at tcp_do_segment+0x23aa/frame 0xfffffe0c1bee5580
tcp_input_with_port() at tcp_input_with_port+0xed7/frame 0xfffffe0c1bee56d0
tcp_input() at tcp_input+0xb/frame 0xfffffe0c1bee56e0
ip_input() at ip_input+0x33c/frame 0xfffffe0c1bee5740
netisr_dispatch_src() at netisr_dispatch_src+0x83/frame 0xfffffe0c1bee57a0
ether_demux() at ether_demux+0x162/frame 0xfffffe0c1bee57d0
ether_nh_input() at ether_nh_input+0x346/frame 0xfffffe0c1bee5810
netisr_dispatch_src() at netisr_dispatch_src+0x83/frame 0xfffffe0c1bee5870
ether_input() at ether_input+0x62/frame 0xfffffe0c1bee58a0
tcp_lro_flush() at tcp_lro_flush+0x217/frame 0xfffffe0c1bee58c0
tcp_lro_flush_all() at tcp_lro_flush_all+0x13b/frame 0xfffffe0c1bee5900
service_iq() at service_iq+0x7d1/frame 0xfffffe0c1bee59c0
t4_intr() at t4_intr+0x30/frame 0xfffffe0c1bee59e0
intr_event_execute_handlers() at intr_event_execute_handlers+0x99/frame
0xfffffe0c1bee5a20
ithread_loop() at ithread_loop+0xb7/frame 0xfffffe0c1bee5a70
fork_exit() at fork_exit+0x84/frame 0xfffffe0c1bee5ab0
fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe0c1bee5ab0
--- trap 0, rip =3D 0, rsp =3D 0, rbp =3D 0 ---
panic: Assertion (*xp & ~LK_EXCLUSIVE_SPINNERS) =3D=3D LK_SHARERS_LOCK(1) f=
ailed at
/usr/src/sys/kern/kern_lock.c:541
cpuid =3D 16
time =3D 1524314516
Uptime: 19m34s


Someone needs to modify this code to do the right thing in the post-panic
world. For what its worth, ignoring the assert lets a coredump finish
correctly, and is probably the "right thing" to do in this case.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-227749-227>