From nobody Wed Aug 27 20:33:12 2025 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 4cBx7S0DJTz65chh for ; Wed, 27 Aug 2025 20:33:24 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Received: from mx-01.divo.sbone.de (mx-01.divo.sbone.de [IPv6:2003:a:140a:2200:6:594:fffe:19]) (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 ECDSA (prime256v1) client-digest SHA256) (Client CN "mx-01.divo.sbone.de", Issuer "E6" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cBx7R2p2fz4GFM for ; Wed, 27 Aug 2025 20:33:23 +0000 (UTC) (envelope-from bzeeb-lists@lists.zabbadoz.net) Authentication-Results: mx1.freebsd.org; none Received: from mail.sbone.de (mail.sbone.de [IPv6:fde9:577b:c1a9:4902:0:7404:2:1025]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by mx-01.divo.sbone.de (Postfix) with ESMTPS id 5D027A64805; Wed, 27 Aug 2025 20:33:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=zabbadoz.net; s=20240622; t=1756326787; bh=kY7vLUyoI0zS+ZBGaK2Z5DBP1Wp4xsWQTxaFA+mXXQI=; h=Date:From:To:cc:Subject:In-Reply-To:References; b=SH8K7svqsbMAAu8eC5vBPWepnZJ0ku1BHsu6TA3qmJI/f/VHHthxAbDks1iVmBxtL Fa+C+/d9gAvKdWby8akCii7NOMvTAwrbsBUxluPPxRM+ws0hXb/EvSrPrXuBd3s5rm rnsMs5D6LdlsyIsVVeSaIgRwd32/toyj6saIp+PHwPT9qRqg8ePAJt225MpmGpX89H E7VF8PEBiU/qlSRpB8bzyb7j35UUcck/8vabIc1+QX8o2VqR4321YmXk+1K8XNqRfQ XcXOQzA//hYU3kCgpMBAqjd06tuo6D3Gy8BwlWNy6aOHesquXCsovQuiuQeYKjLvEZ nPQF5FfgPRmYw24KypO7dE2ak9I/C8+O3TonzeLzHJwRGzNhCqTxmSdAeqKJ29i/A+ hsHMbqVhhhi1IHiw3S8Tf7M6TcMjZ+H1waXQ46fRFMNeLnJTeRdJbdGS6ljaB+Ci00 4+6AQR5k1eU5iR4PJ7dubWsKWeG8rpvsEHD1jPzokUVCvVVefKyF9I0I0/scw08ChU 7nixhShisUa4hlzTLK9BLvnsXvCKRjYkmK9Yhsuz6gpDIczXlNwGBsBgHlI5D29chQ QQMogMzHcl1XGMuIQu7pWkJes9GPpVZOwtkAwYklPYrN3hAdY3GVm0fExDoSgpmtAU oLNKlYEIZUSCpzgycBEFgqGA= Received: from content-filter.t4-02.sbone.de (content-filter.t4-02.sbone.de [IPv6:fde9:577b:c1a9:4902:0:7404:2:2742]) (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) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPS id 2FD822D029E3; Wed, 27 Aug 2025 20:33:14 +0000 (UTC) X-Virus-Scanned: amavisd-new at sbone.de Received: from mail.sbone.de ([IPv6:fde9:577b:c1a9:4902:0:7404:2:1025]) by content-filter.t4-02.sbone.de (content-filter.t4-02.sbone.de [IPv6:fde9:577b:c1a9:4902:0:7404:2:2742]) (amavisd-new, port 10024) with ESMTP id 5XOJGGad1b-X; Wed, 27 Aug 2025 20:33:13 +0000 (UTC) Received: from strong-iwl0.sbone.de (strong-iwl0.sbone.de [IPv6:fde9:577b:c1a9:4902:a66b:b6ff:fe40:39a9]) (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) (No client certificate requested) by mail.sbone.de (Postfix) with ESMTPSA id 998472D029D8; Wed, 27 Aug 2025 20:33:12 +0000 (UTC) Date: Wed, 27 Aug 2025 20:33:12 +0000 (UTC) From: "Bjoern A. Zeeb" To: Konstantin Belousov cc: current@freebsd.org Subject: Re: nfs: panic: fsync: vnode is not exclusive locked but should be In-Reply-To: Message-ID: <8n54sp24-n885-0749-n12s-44811pr0290s@yvfgf.mnoonqbm.arg> References: <38pos3n9-1605-7983-p50s-2ossos99sn21@yvfgf.mnoonqbm.arg> X-OpenPGP-Key-Id: 0x14003F198FEFA3E77207EE8D2B58B8F83CCF1842 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 Content-Type: text/plain; charset=US-ASCII; format=flowed X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:3320, ipnet:2003::/19, country:DE] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Rspamd-Queue-Id: 4cBx7R2p2fz4GFM On Wed, 27 Aug 2025, Konstantin Belousov wrote: > On Wed, Aug 27, 2025 at 01:18:32PM +0000, Bjoern A. Zeeb wrote: >> Just netbooted a main (0d843cc2e2a373f01f) GENERIC to do some testing on >> a board I rarely use before pushing changes and got the below. >> Has this been fixed already? >> >> ... >> Last login: Sun May 25 19:37:45 on ttyu0 >> VNASSERT failed: locked not true at /usr/src/bz_wifi_precommit_testing/sys/kern/vfs_subr.c:5795 (assert_vop_elocked) >> 0xfffff8000761b000: type VREG state VSTATE_CONSTRUCTED op 0xffffffff81aad768 >> usecount 2, writecount 0, refcount 3 seqc users 0 >> hold count flags () >> flags (VV_VMSIZEVNLOCK|VMP_LAZYLIST) >> v_object 0xfffff80005d991f0 ref 0 pages 1 cleanbuf 0 dirtybuf 1 >> lock type nfs: SHARED (count 1) >> Aug 27 13:16:38 fapu2e4b login[19ileid 18620252 fsid 0x3a3a00ff01 >> panic: fsync: vnode is not exclusive locked but should be >> cpuid = 3 >> time = 1756300598 >> KDB: stack backtrace: >> db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe0067d3a4c0 >> vpanic() at vpanic+0x136/frame 0xfffffe0067d3a5f0 >> panic() at panic+0x43/frame 0xfffffe0067d3a650 >> vop_fsync_debugprepost() at vop_fsync_debugprepost+0x124/frame 0xfffffe0067d3a690 >> VOP_FSYNC_APV() at VOP_FSYNC_APV+0x23/frame 0xfffffe0067d3a6b0 >> bufsync() at bufsync+0x3b/frame 0xfffffe0067d3a6e0 >> bufobj_invalbuf() at bufobj_invalbuf+0x24f/frame 0xfffffe0067d3a740 >> ncl_vinvalbuf() at ncl_vinvalbuf+0x100/frame 0xfffffe0067d3a7b0 >> nlm_advlock_internal() at nlm_advlock_internal+0xa7/frame 0xfffffe0067d3aaf0 >> nlm_advlock() at nlm_advlock+0x2d/frame 0xfffffe0067d3ab10 >> nfs_advlock() at nfs_advlock+0x1d0/frame 0xfffffe0067d3ac30 >> vop_sigdefer() at vop_sigdefer+0x30/frame 0xfffffe0067d3ac60 >> VOP_ADVLOCK_APV() at VOP_ADVLOCK_APV+0x51/frame 0xfffffe0067d3ac90 >> vn_closefile() at vn_closefile+0x9a/frame 0xfffffe0067d3ad10 >> _fdrop() at _fdrop+0x1a/frame 0xfffffe0067d3ad30 >> closef() at closef+0x1e3/frame 0xfffffe0067d3adc0 >> closefp_impl() at closefp_impl+0x71/frame 0xfffffe0067d3ae00 >> amd64_syscall() at amd64_syscall+0x169/frame 0xfffffe0067d3af30 >> fast_syscall_common() at fast_syscall_common+0xf8/frame 0xfffffe0067d3af30 >> --- syscall (6, FreeBSD ELF64, close), rip = 0x1ea0dba28cca, rsp = 0x1ea0d6def6b8, rbp = 0x1ea0d6def6e0 --- >> KDB: enter: panic >> [ thread pid 1955 tid 100182 ] >> Stopped at kdb_enter+0x33: movq $0,0x1222d22(%rip) >> db> show alllocks >> Process 1955 (login) thread 0xfffff80005dda000 (100182) >> exclusive lockmgr nfsupg (nfsupg) r = 0 (0xfffffe006b1557e0) locked @ /usr/src/bz_wifi_precommit_testing/sys/fs/nfsclient/nfs_clsubs.c:146 >> shared lockmgr nfs (nfs) r = 0 (0xfffff8000761b070) locked @ /usr/src/bz_wifi_precommit_testing/sys/fs/nfsclient/nfs_clvnops.c:3477 >> Process 1817 (syslogd) thread 0xfffff80005d85780 (100108) >> exclusive lockmgr nfs (nfs) r = 0 (0xfffff800447a33e0) locked @ /usr/src/bz_wifi_precommit_testing/sys/kern/vfs_vnops.c:1243 >> > > You are using nfslockd, right? > Try this. > > commit 881d724a671caa628407373faf0b87a70bfb3218 > Author: Konstantin Belousov > Date: Wed Aug 27 19:57:06 2025 +0300 > > nfs client: switch nfs_advlock() to use exclusive vnode lock > > It eliminates the need to upgrade the lock in the function. > More importantly, the calls to nfs_advlock_p()/nlm_advlock() sometimes > flush buffers, which requires exclusive locking. > > Reported by: bz > > diff --git a/sys/fs/nfsclient/nfs_clvnops.c b/sys/fs/nfsclient/nfs_clvnops.c > index a8b06fdb261b..eee571a04821 100644 > --- a/sys/fs/nfsclient/nfs_clvnops.c > +++ b/sys/fs/nfsclient/nfs_clvnops.c > @@ -3474,7 +3474,7 @@ nfs_advlock(struct vop_advlock_args *ap) > u_quad_t size; > struct nfsmount *nmp; > > - error = NFSVOPLOCK(vp, LK_SHARED); > + error = NFSVOPLOCK(vp, LK_EXCLUSIVE); > if (error != 0) > return (EBADF); > nmp = VFSTONFS(vp->v_mount); > @@ -3511,11 +3511,6 @@ nfs_advlock(struct vop_advlock_args *ap) > cred = p->p_ucred; > else > cred = td->td_ucred; > - NFSVOPLOCK(vp, LK_UPGRADE | LK_RETRY); > - if (VN_IS_DOOMED(vp)) { > - error = EBADF; > - goto out; > - } > > /* > * If this is unlocking a write locked region, flush and > This booted and I could log in at least once now. Thank you! -- Bjoern A. Zeeb r15:7