[Bug 257187] NFSv3 server creates symlinks that local clients can't read [ZFS]
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 15 Jul 2021 00:03:46 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=257187
--- Comment #2 from Garrett Wollman <wollman@FreeBSD.org> ---
(In reply to Alan Somers from comment #1)
I get two hits on sdt:zfs::set-error, which I think are actually the same:
dtrace: description 'sdt:zfs::set-error ' matched 1 probe
dtrace: pid 87135 exited with status 1
CPU ID FUNCTION:NAME
14 47740 none:set-error
zfs.ko`sa_attr_op+0x1b5
zfs.ko`sa_lookup_uio+0x69
zfs.ko`zfs_freebsd_readlink+0x7c
kernel`0xffffffff80b1bf2b
kernel`vn_rdwr+0x173
kernel`vn_rdwr+0x26
kernel`AES_GCM_decrypt+0xa87
kernel`ssdtosyssd+0x8e
14 47740 none:set-error
zfs.ko`sa_lookup_uio+0x69
zfs.ko`zfs_freebsd_readlink+0x7c
kernel`0xffffffff80b1bf2b
kernel`vn_rdwr+0x173
kernel`vn_rdwr+0x26
kernel`AES_GCM_decrypt+0xa87
kernel`ssdtosyssd+0x8e
Looks like the only place this can happen is:
switch (data_op) {
case SA_LOOKUP:
if (bulk[i].sa_addr == NULL)
return (SET_ERROR(ENOENT));
which I guess means that zfs_freebsd_readlink() tried to read the ZPL_SYMLINK
attribute and it wasn't found -- but that still doesn't explain how it is that
readlink() succeeds over NFS and not locally. (A symbolic link is just
uninterpreted text as far as readlink() is concerned, it shouldn't matter what
its value is!)
This indicates a second bug: that [ENOENT] should get transformed into a more
appropriate error on exit to indicate an internal filesystem inconsistency.
--
You are receiving this mail because:
You are the assignee for the bug.