Go-ipfs daemon --mount consistently crashes

I’m playing around with fuse bindings, and I can easily crash the go-ipfs daemon. Is there something that I’m missing, or is the fuse support totally broken?

steps:

# Create the mountpoints
sudo mkdir /ipfs
sudo mkdir /ipns

# chown them so ipfs can use them without root permissions
sudo chown $USER /ipfs
sudo chown $USER /ipns

# Initalize and start up IPFS
ipfs init
ipfs config --json Mounts.FuseAllowOther true
ipfs daemon --mount &

# Move into a directory
cd $(dig +noall +answer TXT _dnslink.docs.ipfs.io| sed 's/.*\/ipfs/\/ipfs/;s/"//')

python -m SimpleHTTPServer

Then if you go to localhost:8000 the ipfs daemon will eventually crash out.

Is this a bug or am I doing something stupid?

Is there an error message you receive when it crashes?

No error, the process trying to access the filesystem starts to throw errors and then nothing works under /ipfs again

I am not sure that IPFS can crash without an error. What is the daemon output say? Is it still running? Has the process died? What errors is the process trying to access the filesystem throwing?

FUSE was never super solid (not ipfs’s fault), but with this little information it is very hard to diagnose, let alone to fix what might be happening.

I understand that this isn’t super helpful, but it seems like it’s just not super solid. It seems like it’s returning zero length files at somepoint, and then there is a length and depending upon the use case it messes up either fuse or the client accessing fuse. Need to hard quit ipfs and then umount /ipfs to get going.

It does seem to be more solid if you get all of the stuff in the CID into the IPFS cache before going trying to pull it out via fuse.

Out of curisosity, are you working on a Mac? I know that in the current version of macOS, the / directory is read only and everything else is hides under /System/Volumes/Data. Gotta love the way that Apple changes things around in the name of making things easier for the user…

| => uname -a

Darwin G-Lappy.local 19.3.0 Darwin Kernel Version 19.3.0: Thu Jan 9 20:58:23 PST 2020; root:xnu-6153.81.5~1/RELEASE_X86_64 x86_64


| / @ G-Lappy (gvantass)
| => mount
/dev/disk1s5 on / (apfs, local, read-only, journaled)
devfs on /dev (devfs, local, nobrowse)
/dev/disk1s1 on /System/Volumes/Data (apfs, local, journaled, nobrowse)
/dev/disk1s4 on /private/var/vm (apfs, local, journaled, nobrowse)
map auto_home on /System/Volumes/Data/home (autofs, automounted, nobrowse)