-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Description
environment info:
$ fish --version
fish, version 3.6.0
$ echo $version
3.6.0
$ uname -a
Linux framework 5.15.79.1-microsoft-standard-WSL2 #1 SMP Wed Nov 23 01:01:46 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
The problem occurs when running under "sh -c 'env HOME=$(mktemp -d) fish'", as well as "env -i fish --login --no-config"
details
When entering a command in fish, I'll see error output on each keypress like the following:
❯ firfstatat: No such device
e fstatat: No such device
f fstatat: No such device
o fstatat: No such device
x fstatat: No such device
This starts after a few keypresses, and ends after I've typed something that is found in the PATH. strace tells me that the failing call is:
[pid 413938] newfstatat(8, "gdrive", 0x7f17df4e0980, 0) = -1 ENODEV (No such device)
~/gdrive is a symlink to a mounted but somehow messed up mount point, using the WSL drvfs filesystem that gives access to Windows drives into WSL. This is specifically a Google Drive virtual drive:
$ ls -l
...
lrwxrwxrwx 16 adam 12 Dec 2021 gdrive -> /mnt/g/My Drive/
$ mount | grep /mnt/g
drvfs on /mnt/g type 9p (rw,relatime,dirsync,aname=drvfs;path=g:;symlinkroot=/mnt/,mmap,access=client,msize=262144,trans=virtio)
If I delete the symlink, or re-mount the bad mountpoint the errors stop.
what should happen instead?
I'm not sure why ~/gdrive is being accessed at all, since it's not mentioned in my fish config or environment. So two suggestions:
- Whatever is accessing ~/gdrive may not be necessary and could be avoided entirely
- If a necessary feature does trigger this kind of error, a more descriptive message would be helpful.