ipfs / kubo

An IPFS implementation in Go
https://docs.ipfs.tech/how-to/command-line-quick-start/
Other
16.05k stars 3k forks source link

mount bugs on osx #1048

Open jbenet opened 9 years ago

jbenet commented 9 years ago

On OSX.

Mount fails weirdly. After being on for a while, something (possibly laptop sleep) makes the fuse mount get into an odd state. it's still mounted, but will not respond. Morever, running ipfs mount again (which should unmount before remounting) fails. It is only my forcing unmount that things recover.

opn commented 9 years ago

Following the instructions here - https://github.com/ipfs/go-ipfs/blob/master/docs/fuse.md - I am having difficulty with "ipfs daemon --mount" on OSX. Latest Fuse is installed:

OSXFUSE.FuseVersion: 27
OSXFUSE.AgentVersion: 2.8.0
OSXFUSE.AgentName: OSXFUSE

and my go version is go1.4.2 darwin/amd64.

Mounting seemed to work fine - all though the structure of the two Volumes could do with a little explanation.

I get permission denied when I try to add a file with nano and then drag and drop in the Finder - I had previously changed the permissions on the mountpoints to my user), and then tried:

ipfs config Mounts.FuseAllowOther true
Error: Failed to set config value: Failure to decode config: json: cannot unmarshal string into Go value of type bool

Exiting the ipfs daemon did not seem to shut things down cleanly (see below). So I'm going to restart :)

^C
Received interrupt signal, shutting down...
Publishing!
Publishing!
07:42:29.138 ERROR     ipnsfs: leveldb: closed system.go:79
07:42:29.138 ERROR  fuse/ipns: Error Shutting Down Filesystem: leveldb: closed
 ipns_unix.go:50
david:~ BabyBlue$ ipfs config Mounts.FuseAllowOther true
Error: Failed to set config value: Failure to decode config: json: cannot unmarshal string into Go value of type bool
david:~ BabyBlue$ go version
go version go1.4.2 darwin/amd64
david:~ BabyBlue$ fuse-version
OSXFUSE.FuseVersion: 27
OSXFUSE.AgentVersion: 2.8.0
OSXFUSE.AgentName: OSXFUSE
david:~ BabyBlue$ ipfs daemon --mount
Initializing daemon...
Publishing!
Publishing!
07:51:58.078 ERROR     ipnsfs: leveldb: closed system.go:79
Error: exit status 64: mount_osxfusefs: mount point /ipfs is itself on a OSXFUSE volume
david:~ BabyBlue$ sudo umount /ipfs
Password:
umount(/ipfs): Resource busy -- try 'diskutil unmount'
jbenet commented 9 years ago

I get permission denied when I try to add a file with nano and then drag and drop in the Finder - I had previously changed the permissions on the mountpoints to my user), and then tried:

are you adding via /ipns/local/...? only that part is writable atm.

we considered allowing users to write in /ipfs/... but it would force us to change workdir for the user with any write. for example:

/ > cd /ipfs/QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn
/ipfs/QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn > echo "hello world" >foo
/ipfs/QmQbWkjsp4PH3LXZJNAVFwn3pvt96bo2KKnbTQYa9RQ4aX > ls
foo
/ipfs/QmQbWkjsp4PH3LXZJNAVFwn3pvt96bo2KKnbTQYa9RQ4aX > cat foo
hello world

this is because things inside /ipfs/... are (by definition) immutable.

so the above simulates this:

> echo "hello world" | ipfs add
added QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o
> ipfs object new unixfs-dir
QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn
> ipfs object patch QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn add-link foo QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o
QmQbWkjsp4PH3LXZJNAVFwn3pvt96bo2KKnbTQYa9RQ4aX
RubenKelevra commented 3 years ago

@jbenet can you confirm this bug for 0.8, still? Or has it been fixed in the meantime?

Stebalien commented 3 years ago

This has not been fixed, but likely never will be. We'll close this when we finally switch to a new mount system that doesn't depend on osxfuse.