Re: traceroute6: panic: pcb not read locked

From: Mark Johnston <markj_at_FreeBSD.org>
Date: Fri, 7 Aug 2015 20:25:21 -0700
On Fri, Aug 07, 2015 at 08:04:01PM -0500, Larry Rosenman wrote:
> Trying to debug TimeWarner IPV6 to my HE.NET tunnel, and running traceroute6, 
> got the following panic:
> 
> borg.lerctr.org dumped core - see /var/crash/vmcore.0
> 
> Fri Aug  7 19:58:40 CDT 2015
> 
> FreeBSD borg.lerctr.org 11.0-CURRENT FreeBSD 11.0-CURRENT #32 r286338: Wed Aug  5 15:57:55 CDT 2015     root_at_borg.lerctr.org:/usr/obj/usr/src/sys/VT-LER  amd64
> 
> panic: Lock tcp not read locked _at_ /usr/src/sys/netinet/tcp_subr.c:1189
> 
> GNU gdb 6.1.1 [FreeBSD]
> Copyright 2004 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "amd64-marcel-freebsd"...
> 
> Unread portion of the kernel message buffer:
> panic: Lock tcp not read locked _at_ /usr/src/sys/netinet/tcp_subr.c:1189

This appears to be fallout from r286227: the tcpinfo lock assertion in
tcp_notify() is too strong, since tcp_notify() can still be called from
tcp6_ctlinput() with the tcpinfo write lock held.

The attached patch addresses this; could you give it a try?

-Mark

Received on Sat Aug 08 2015 - 01:25:28 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:59 UTC