From nobody Wed Mar 18 09:36:00 2026 X-Original-To: current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fbNxP5jLQz6VXBg for ; Wed, 18 Mar 2026 09:36:09 +0000 (UTC) (envelope-from zlei@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fbNxP4wgLz3CkW for ; Wed, 18 Mar 2026 09:36:09 +0000 (UTC) (envelope-from zlei@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1773826569; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JT5m2IKxD9EAxgENptJe0ZkcQ8tPvmLKwkmRLrUqNEE=; b=j+K7FWAqcg1gq9f3A9W70Jlm3MT37+W2j3qCUmGCBu7CmzcsbC2sFmSb19cWtaXE/EV2tN zv4kku8aWOqtuv2clUPXc4D7J2kYT2f2thAV4w/LVjxtXM8IqeIzr8tSK2eWcK9eWPWTKh riqxG9GfOAsMY8LCvg04Isx4cLz4RODyO0v4E+3YklbE+Jw+2paHHh1vJn0MCSM64FOtCM FLkOMgqyWSCXFRkF0/Xr5Elt+AzYO8CaGxvbSX4HWyf2bf/ri7Uexn3XJQxbcNrCtr+oIR OcWBcjveNo4RcbUqyvilOCIOR+E5H214RtFbre1K20OJLkR8Z78cef21+1udvg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1773826569; a=rsa-sha256; cv=none; b=HR4Z8yrsUIJzFoZKEgMOLhcFaHKIDwGhdYD1y1Eh0pP7gqvQeMgzXdMabruxfuvN/bHmlj G70FGZ+8u+Vng1/fxXPEbwbdPQ/wpUj55NQZYld2zjDutymFBjVn0ufRtkMnOgLTr2K3+8 KSO4PhrTu1K5fmn7yw/GwLGZKexnNiyhigQ/XewNxpCMEX/E0kjZhsKXLw0Y05pjuTE8O2 ydy1jT5660dbCy4Ae1AXom7ey7Z92KA2qHMbU+Lqc7BFKfIJPpueFnjYsGWTCwxMGW3RaA 6G74UpNaZUYTyXx1DGCqodoXgnIwV5o89kbZ+36nbVt/twxiMOn4AU+j7CuIyw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1773826569; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JT5m2IKxD9EAxgENptJe0ZkcQ8tPvmLKwkmRLrUqNEE=; b=LuzxPUT5t5S1OXDsAgNlw0RVZKgm7dmm5Tz+Coulf31Ugi0pOI/SBMU87fjOvdZLB3tK5c 8zbBk5bbF0fcaEKC76JwNyHB+813nJ2tQncMacVroMTRkBjQ6H3Ae6JMaRcdirwZo2P3vb 4IIFpNz9vHgFQPqmdZ7Xc0DVkMLncgG9R/NQyfgEuGIIkrcHQdA1A6x192tSInOGRZtO5m b7xzPJUlrXs6D0OYkgvf5IhtkgfMQqt+XD2HaWh+Yl/WHD8DjI9k5DJGBQhkLOpBabOiF7 AfPpdwjf0LsoQsuzig66QVxJev4OtvUyO5D2iQXUb6T2hRnDpy+zAN2zYcmO3A== Received: from smtpclient.apple (ns1.oxydns.net [45.32.91.63]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) (Authenticated sender: zlei/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 4fbNxN3NrDz17jV for ; Wed, 18 Mar 2026 09:36:08 +0000 (UTC) (envelope-from zlei@FreeBSD.org) From: Zhenlei Huang Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3696.120.41.1.10\)) Subject: userret: returning with the following locks held Message-Id: Date: Wed, 18 Mar 2026 17:36:00 +0800 To: FreeBSD Current X-Mailer: Apple Mail (2.3696.120.41.1.10) Hi, While I'm working on the if_detach() / if_vmove() racing issue and I = wrote a test and try to repeat the race condition and got this assert panic, ``` <6>epair1b: link state changed to UP userret: returning with the following locks held: exclusive sx ifnet_detach_sx (ifnet_detach_sx) r =3D 1 = (0xffffffff83ab75e0) locked @ /home/zlei/freebsd-src/sys/net/if.c:1286 panic: witness_warn cpuid =3D 2 time =3D 1773824038 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0xa5/frame = 0xfffffe00ec001710 kdb_backtrace() at kdb_backtrace+0xc6/frame 0xfffffe00ec001870 vpanic() at vpanic+0x214/frame 0xfffffe00ec001a10 panic() at panic+0xb5/frame 0xfffffe00ec001ad0 witness_warn() at witness_warn+0x7f7/frame 0xfffffe00ec001c30 userret() at userret+0x11c/frame 0xfffffe00ec001d10 amd64_syscall() at amd64_syscall+0x694/frame 0xfffffe00ec001f30 fast_syscall_common() at fast_syscall_common+0xf8/frame = 0xfffffe00ec001f30 --- syscall (19, FreeBSD ELF64, compat.lseek), rip =3D 0xfd288de65ba, = rsp =3D 0xfd284aad4b8, rbp =3D 0xfd284aad500 --- Uptime: 29m8s Dumping 1355 out of 16137 = MB:..2%..11%..21%..31%..41%..51%..61%..71%..81%..91% ``` The line 1286 of sys/net/if.c is ( my WIP revision ), ``` 1250 static int 1251 if_vmove_reclaim(struct thread *td, char *ifname, int jid) 1252 { ... 1282 /* Get interface back from child jail/vnet. */ 1283 found =3D if_unlink_ifnet(ifp, true); 1284 MPASS(found); 1285 sx_xlock(&ifnet_detach_sxlock); 1286 if_vmove(ifp, vnet_dst); 1287 sx_xunlock(&ifnet_detach_sxlock); 1288=20 1289 /* Report the new if_xname back to the userland. */ 1290 sprintf(ifname, "%s", ifp->if_xname); 1291=20 1292 prison_free(pr); 1293 CURVNET_RESTORE(); 1294 return (0); 1295 } ``` That puzzled me a lot. The current thread only reaches to `if_vmove()` , = how does it happen to userret() ? Is that witness warn is false report ? Best regards, Zhenlei