From nobody Wed Sep  7 14:50:06 2022
X-Original-To: freebsd-bugs@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 4MN4tn4zlpz4cbHn
	for <freebsd-bugs@mlmmj.nyi.freebsd.org>; Wed,  7 Sep 2022 14:50:41 +0000 (UTC)
	(envelope-from lecocq@ipgp.fr)
Received: from belenos.ipgp.fr (belenos.ipgp.fr [194.254.225.6])
	by mx1.freebsd.org (Postfix) with ESMTP id 4MN4tm6VGQz3SLl
	for <freebsd-bugs@FreeBSD.org>; Wed,  7 Sep 2022 14:50:40 +0000 (UTC)
	(envelope-from lecocq@ipgp.fr)
Received: from localhost (localhost [127.0.0.1])
	by belenos.ipgp.fr (Postfix) with ESMTP id 1A2BF196063
	for <freebsd-bugs@FreeBSD.org>; Wed,  7 Sep 2022 16:50:40 +0200 (CEST)
Received: from belenos.ipgp.fr ([127.0.0.1])
	by localhost (belenos.ipgp.fr [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id Rxbfz-Kid5Mf for <freebsd-bugs@FreeBSD.org>;
	Wed,  7 Sep 2022 16:50:39 +0200 (CEST)
Received: from mailhost.ipgp.fr (teupa.ipgp.fr [10.0.21.99])
	by belenos.ipgp.fr (Postfix) with ESMTPS id E2D2F196033
	for <freebsd-bugs@FreeBSD.org>; Wed,  7 Sep 2022 16:50:39 +0200 (CEST)
Received: from magister.ipgp.fr (magister.ipgp.fr [10.1.6.24])
          by mailhost.ipgp.fr (8.13.1/jtpda-5.4) with ESMTP id 287EodnM011691
          ; Wed, 7 Sep 2022 16:50:39 +0200 (CEST)
Received: by magister.ipgp.fr (Postfix, from userid 10237)
	id 8948C806AB; Wed,  7 Sep 2022 16:50:39 +0200 (CEST)
User-agent: mu4e 1.6.10; emacs 28.1
From: Michel Le Cocq <lecocq@ipgp.fr>
To: freebsd-bugs@FreeBSD.org
Subject: FreeBSD 13.1 : ZFS NFS : .zfs/snapshot : Stale file handle : with
 zfs destroy snapshot process in Uninterruptible sleep
Date: Wed, 07 Sep 2022 16:50:06 +0200
Message-ID: <s3m4jxj44sg.fsf@ipgp.fr>
List-Id: Bug reports <freebsd-bugs.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/freebsd-bugs
List-Help: <mailto:freebsd-bugs+help@freebsd.org>
List-Post: <mailto:freebsd-bugs@freebsd.org>
List-Subscribe: <mailto:freebsd-bugs+subscribe@freebsd.org>
List-Unsubscribe: <mailto:freebsd-bugs+unsubscribe@freebsd.org>
Sender: owner-freebsd-bugs@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain
X-Rspamd-Queue-Id: 4MN4tm6VGQz3SLl
X-Spamd-Bar: ---
Authentication-Results: mx1.freebsd.org;
	dkim=none;
	dmarc=none;
	spf=pass (mx1.freebsd.org: domain of lecocq@ipgp.fr designates 194.254.225.6 as permitted sender) smtp.mailfrom=lecocq@ipgp.fr
X-Spamd-Result: default: False [-3.20 / 15.00];
	NEURAL_HAM_MEDIUM(-1.00)[-1.000];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	NEURAL_HAM_SHORT(-1.00)[-1.000];
	R_SPF_ALLOW(-0.20)[+ip4:194.254.225.6:c];
	MIME_GOOD(-0.10)[text/plain];
	RCVD_NO_TLS_LAST(0.10)[];
	MLMMJ_DEST(0.00)[freebsd-bugs@FreeBSD.org];
	ARC_NA(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	MIME_TRACE(0.00)[0:+];
	R_DKIM_NA(0.00)[];
	DMARC_NA(0.00)[ipgp.fr];
	RCPT_COUNT_ONE(0.00)[1];
	TO_DN_NONE(0.00)[];
	RCVD_COUNT_FIVE(0.00)[6];
	ASN(0.00)[asn:2200, ipnet:194.254.0.0/16, country:FR];
	FROM_HAS_DN(0.00)[];
	PREVIOUSLY_DELIVERED(0.00)[freebsd-bugs@freebsd.org];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	MID_RHS_MATCH_FROM(0.00)[]
X-ThisMailContainsUnwantedMimeParts: N

Hi, since upgrading to 13.1-RELEASE of FreeBSD I can't anymore access to
.zfs/snapshot folder over NFS.

When I tried to acces do .zfs/snapshot over NFS I obtain a 'Stale file
handle'.

Worse : Then if you tried to delete the snapshot that was accessed, you
'zfs destroy snapshot' process will fall in 'Uninterruptible sleep'
(usually IO). So you can't kill it ! 

I post this bug here :
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=266236

A little small procedure to reproduce this bug.

Install a fresh FreeBSD server under 13.1-p2

	root@server:~# freebsd-version 
	13.1-RELEASE-p2
	
Inside a zfs pool create a vol and share it by NFS.

	root@server:~# zfs get name,mountpoint,sharenfs tank/zfsnfstest
	NAME             PROPERTY    VALUE             SOURCE
	tank/zfsnfstest  name        tank/zfsnfstest   -
	tank/zfsnfstest  mountpoint  /tank/zfsnfstest  local
	tank/zfsnfstest  sharenfs    on                local
	
Mount localy your sharenfs vol.

	root@server:~# mount -t nfs 127.0.0.1:/tank/zfsnfstest /mnt
	
Create a snapshot.

	root@server:~# zfs snapshot tank/zfsnfstest@1
	
Check you can access localy.

	root@server:~# ls -l /tank/zfsnfstest/.zfs/snapshot/1/
	total 0
	root@server:~#
	
Try to acces from mounted NFS vol.

	root@server:~# ls -l /mnt/.zfs/snapshot/1/
	total 0
	ls: /mnt/.zfs/snapshot/1/: Stale NFS file handle
	
Here we see we don't have access from NFS.

Try to remove your previous created snapshot.

	root@server:~# zfs destroy tank/zfsnfstest@1

This process didn't end...
		
	root@server:~ # ps aux
	USER    PID  %CPU %MEM    VSZ  RSS TT  STAT STARTED      TIME COMMAND
	[...]
	root  58027   0.0  0.0  18012 7256  1  D+   12:27     0:00.01 zfs destroy tank/zfsnfstest@1
	
D mean : Uninterruptible sleep (usually IO). So you can't kill it !

	root@server:~ # kill 58027
	root@server:~ # ps aux | grep 58027
	root  58027   0.0  0.0  18012 7256  1  D+   12:27     0:00.01 zfs destroy tank/zfsnfstest@1
	root@server:~ # kill -1 58027
	root@server:~ # ps aux | grep 58027
	root  58027   0.0  0.0  18012 7256  1  D+   12:27     0:00.01 zfs destroy tank/zfsnfstest@1
	root@server:~ # kill -9 58027
	root@server:~ # ps aux | grep 58027
	root  58027   0.0  0.0  18012 7256  1  D+   12:27     0:00.01 zfs destroy tank/zfsnfstest@1
	root@server:~ #

Thanks.

--
M