ahupp · GitHub

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:

  1. Whatever is accessing ~/gdrive may not be necessary and could be avoided entirely
  2. If a necessary feature does trigger this kind of error, a more descriptive message would be helpful.

Read the original on github.com ↗