Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 03 Sep 2019 14:08:13 -0000
From:      "Kristof Provost" <kp@FreeBSD.org>
To:        "Enji Cooper" <yaneurabeya@gmail.com>
Cc:        "Hans Petter Selasky" <hps@selasky.org>, src-committers <src-committers@freebsd.org>, svn-src-all <svn-src-all@freebsd.org>, svn-src-head <svn-src-head@freebsd.org>, "FreeBSD CURRENT" <freebsd-current@freebsd.org>
Subject:   Re: Panic with r346530 [Re: svn commit: r346530 - in head/sys: netinet netinet6]
Message-ID:  <1342BBD2-EE0F-4457-8752-659EA7F01725@FreeBSD.org>
In-Reply-To: <8EAC0CFE-E22F-478F-813F-A07E68C0518D@gmail.com>
References:  <201904220727.x3M7ROpR009729@repo.freebsd.org> <2F3D6B17-AF4F-4B0F-B20E-5EF41DE851F9@gmail.com> <87917500-0381-79d8-a34b-819848abed32@selasky.org> <f2567fc6-fd5b-67c9-a994-5a48d65d1278@selasky.org> <8EAC0CFE-E22F-478F-813F-A07E68C0518D@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 22 Apr 2019, at 12:25, Enji Cooper wrote:
> Either the sys/netinet/ or sys/netipsec/ tests triggered the panic. 
> Not sure which right now.
>
That looks to be happening during a vnet jail teardown, so it’s likely 
the sys/netipsec or sys/netpfil/pf tests.

I’ve done a quick test with the pf tests, and they provoke this panic:

	panic: mtx_lock() of destroyed mutex @ 
/usr/src/sys/netinet/ip_reass.c:628
	cpuid = 0
	time = 1555939645
	KDB: stack backtrace:
	db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 
0xfffffe0091d68530
	vpanic() at vpanic+0x19d/frame 0xfffffe0091d68580
	panic() at panic+0x43/frame 0xfffffe0091d685e0
	__mtx_lock_flags() at __mtx_lock_flags+0x12e/frame 0xfffffe0091d68630
	ipreass_cleanup() at ipreass_cleanup+0x86/frame 0xfffffe0091d68670
	if_detach_internal() at if_detach_internal+0x786/frame 
0xfffffe0091d686f0
	if_detach() at if_detach+0x3d/frame 0xfffffe0091d68710
	lo_clone_destroy() at lo_clone_destroy+0x16/frame 0xfffffe0091d68730
	if_clone_destroyif() at if_clone_destroyif+0x21f/frame 
0xfffffe0091d68780
	if_clone_detach() at if_clone_detach+0xb8/frame 0xfffffe0091d687b0
	vnet_loif_uninit() at vnet_loif_uninit+0x26/frame 0xfffffe0091d687d0
	vnet_destroy() at vnet_destroy+0x124/frame 0xfffffe0091d68800
	prison_deref() at prison_deref+0x29d/frame 0xfffffe0091d68840
	sys_jail_remove() at sys_jail_remove+0x28f/frame 0xfffffe0091d68890
	amd64_syscall() at amd64_syscall+0x276/frame 0xfffffe0091d689b0
	fast_syscall_common() at fast_syscall_common+0x101/frame 
0xfffffe0091d689b0
	--- syscall (508, FreeBSD ELF64, sys_jail_remove), rip = 0x80031e12a, 
rsp = 0x7fffffffe848, rbp = 0x7fffffffe8d0 ---
	KDB: enter: panic
	[ thread pid 1223 tid 100501 ]
	Stopped at      kdb_enter+0x3b: movq    $0,kdb_why
	db>

To reproduce:

     kldload pfsync
     cd /usr/tests/sys/netpfil/pf
     sudo kyua test

Regards,
Kristof
From owner-svn-src-all@freebsd.org  Tue Sep  3 14:08:10 2019
Return-Path: <owner-svn-src-all@freebsd.org>
Delivered-To: svn-src-all@mailman.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.nyi.freebsd.org (Postfix) with ESMTP id 74C57DD7AD;
 Tue,  3 Sep 2019 14:07:16 +0000 (UTC)
 (envelope-from yuripv@freebsd.org)
Received: from freefall.freebsd.org (freefall.freebsd.org [96.47.72.132])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 server-signature RSA-PSS (4096 bits)
 client-signature RSA-PSS (4096 bits) client-digest SHA256)
 (Client CN "freefall.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 46N80M55yrz4QQt;
 Tue,  3 Sep 2019 14:07:15 +0000 (UTC)
 (envelope-from yuripv@freebsd.org)
Received: by freefall.freebsd.org (Postfix, from userid 1452)
 id E9BC61B375; Tue,  3 Sep 2019 14:06:33 +0000 (UTC)
X-Original-To: yuripv@localmail.freebsd.org
Delivered-To: yuripv@localmail.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
 (Client CN "mx1.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by freefall.freebsd.org (Postfix) with ESMTPS id 57F77274B;
 Sun, 21 Apr 2019 20:46:54 +0000 (UTC)
 (envelope-from owner-src-committers@freebsd.org)
Received: from freefall.freebsd.org (freefall.freebsd.org
 [IPv6:2610:1c1:1:6074::16:84])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 server-signature RSA-PSS (4096 bits)
 client-signature RSA-PSS (4096 bits) client-digest SHA256)
 (Client CN "freefall.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 7719789255;
 Sun, 21 Apr 2019 20:46:53 +0000 (UTC)
 (envelope-from owner-src-committers@freebsd.org)
Received: by freefall.freebsd.org (Postfix, from userid 538)
 id 199D926E0; Sun, 21 Apr 2019 20:46:53 +0000 (UTC)
Delivered-To: src-committers@localmail.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
 (Client CN "mx1.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by freefall.freebsd.org (Postfix) with ESMTPS id 98CCB26DE
 for <src-committers@localmail.freebsd.org>;
 Sun, 21 Apr 2019 20:46:50 +0000 (UTC) (envelope-from ian@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
 [IPv6:2610:1c1:1:606c::19:3])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 server-signature RSA-PSS (4096 bits)
 client-signature RSA-PSS (4096 bits) client-digest SHA256)
 (Client CN "mxrelay.nyi.freebsd.org",
 Issuer "Let's Encrypt Authority X3" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 5E6F68924F;
 Sun, 21 Apr 2019 20:46:50 +0000 (UTC) (envelope-from ian@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4E0332A8E;
 Sun, 21 Apr 2019 20:46:50 +0000 (UTC) (envelope-from ian@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x3LKkohg072637;
 Sun, 21 Apr 2019 20:46:50 GMT (envelope-from ian@FreeBSD.org)
Received: (from ian@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id x3LKko65072636;
 Sun, 21 Apr 2019 20:46:50 GMT (envelope-from ian@FreeBSD.org)
Message-Id: <201904212046.x3LKko65072636@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ian set sender to ian@FreeBSD.org
 using -f
From: Ian Lepore <ian@FreeBSD.org>
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject: svn commit: r346497 - stable/12/stand/uboot/common
X-SVN-Group: stable-12
X-SVN-Commit-Author: ian
X-SVN-Commit-Paths: stable/12/stand/uboot/common
X-SVN-Commit-Revision: 346497
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Precedence: bulk
X-Loop: FreeBSD.org
Sender: owner-src-committers@freebsd.org
X-Rspamd-Queue-Id: 7719789255
X-Spamd-Bar: --
Authentication-Results: mx1.freebsd.org
X-Spamd-Result: default: False [-2.97 / 15.00];
 local_wl_from(0.00)[freebsd.org];
 NEURAL_HAM_MEDIUM(-1.00)[-1.000,0];
 NEURAL_HAM_SHORT(-0.97)[-0.973,0];
 ASN(0.00)[asn:11403, ipnet:2610:1c1:1::/48, country:US];
 NEURAL_HAM_LONG(-1.00)[-1.000,0]
Status: O
X-BeenThere: svn-src-all@freebsd.org
X-Mailman-Version: 2.1.29
List-Id: "SVN commit messages for the entire src tree \(except for &quot;
 user&quot; and &quot; projects&quot; \)" <svn-src-all.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-all>,
 <mailto:svn-src-all-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-all/>;
List-Post: <mailto:svn-src-all@freebsd.org>
List-Help: <mailto:svn-src-all-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-all>,
 <mailto:svn-src-all-request@freebsd.org?subject=subscribe>
Date: Tue, 03 Sep 2019 14:08:10 -0000
X-Original-Date: Sun, 21 Apr 2019 20:46:50 +0000 (UTC)
X-List-Received-Date: Tue, 03 Sep 2019 14:08:10 -0000

Author: ian
Date: Sun Apr 21 20:46:49 2019
New Revision: 346497
URL: https://svnweb.freebsd.org/changeset/base/346497

Log:
  MFC r344260, r344335
  
  r344260:
  Allow the u-boot loaderdev env var to be formatted in the "usual" loader(8)
  way: device<unit>[s|p]<slice><partition>.  E.g., disk0s2a or disk3p12.
  The code first tries to parse the variable in this format using the
  standard disk_parsedev().  If that fails, it falls back to parsing the
  legacy format that has been supported by ubldr for years.
  
  In addition to 'disk', all the valid uboot device names can also be used:
  mmc, sata, usb, ide, scsi. The 'disk' device serves as an alias for all
  those types and will match the Nth storage-type device found (where N is
  the unit number).
  
  r344335:
  Fix the handling of legacy-format devices in the u-boot loaderdev variable.
  When I added support for the standard loader(8) disk0s2a: type formats,
  the parsing of legacy format was broken because it also contains a colon,
  but it comes before the slice and partition. That would cause disk_parsedev()
  to return success with the slice and partition set to wildcard values.
  
  This change examines the string first, and if it contains spaces, dots, or
  a colon at any position other than the end, it must be a legacy-format
  string and we don't even try to use disk_parsedev() on it.

Modified:
  stable/12/stand/uboot/common/main.c
Directory Properties:
  stable/12/   (props changed)

Modified: stable/12/stand/uboot/common/main.c
==============================================================================
--- stable/12/stand/uboot/common/main.c	Sun Apr 21 20:40:49 2019	(r346496)
+++ stable/12/stand/uboot/common/main.c	Sun Apr 21 20:46:49 2019	(r346497)
@@ -182,6 +182,14 @@ device_typename(int type)
  * The returned values for slice and partition are interpreted by
  * disk_open().
  *
+ * The device string can be a standard loader(8) disk specifier:
+ *
+ * disk<unit>s<slice>              disk0s1
+ * disk<unit>s<slice><partition>   disk1s2a
+ * disk<unit>p<partition>          disk0p4
+ *
+ * or one of the following formats:
+ *
  * Valid device strings:                     For device types:
  *
  * <type_name>                               DEV_TYP_STOR, DEV_TYP_NET
@@ -198,6 +206,7 @@ device_typename(int type)
 static void
 get_load_device(int *type, int *unit, int *slice, int *partition)
 {
+	struct disk_devdesc dev;
 	char *devstr;
 	const char *p;
 	char *endp;
@@ -215,6 +224,26 @@ get_load_device(int *type, int *unit, int *slice, int 
 	printf("U-Boot env: loaderdev='%s'\n", devstr);
 
 	p = get_device_type(devstr, type);
+
+	/*
+	 * If type is DEV_TYP_STOR we have a disk-like device.  If the remainder
+	 * of the string contains spaces, dots, or a colon in any location other
+	 * than the last char, it's legacy format.  Otherwise it might be
+	 * standard loader(8) format (e.g., disk0s2a or mmc1p12), so try to
+	 * parse the remainder of the string as such, and if it works, return
+	 * those results. Otherwise we'll fall through to the code that parses
+	 * the legacy format.
+	 */
+	if (*type & DEV_TYP_STOR) {
+		size_t len = strlen(p);
+		if (strcspn(p, " .") == len && strcspn(p, ":") >= len - 1 &&
+		    disk_parsedev(&dev, p, NULL) == 0) {
+			*unit = dev.dd.d_unit;
+			*slice = dev.d_slice;
+			*partition = dev.d_partition;
+			return;
+		}
+	}
 
 	/* Ignore optional spaces after the device name. */
 	while (*p == ' ')





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1342BBD2-EE0F-4457-8752-659EA7F01725>