go-fuse icon indicating copy to clipboard operation
go-fuse copied to clipboard

Issues when unmounting on linux/ darwin

Open marius-enlock opened this issue 4 months ago • 15 comments

Hi,

On linux I found the need to call fusermount -uz mountpoint, in the unmount command;

I get the following panic:

Exit
Line: 2024/04/25 07:16:07 unmount: executing ["/usr/bin/fusermount3" "-uz" "/home/marius/playground/test_mount"]
Line: 2024/04/25 07:16:07 received ENODEV (unmount request), thread exiting
Line: 2024/04/25 07:16:07 received ENODEV (unmount request), thread exiting
Line: 2024/04/25 07:16:07 received ENODEV (unmount request), thread exiting
Line: 2024/04/25 07:16:07 received ENODEV (unmount request), thread exiting
Line: 2024/04/25 07:16:07 received ENODEV (unmount request), thread exiting
Line: 2024/04/25 07:16:07 received ENODEV (unmount request), thread exiting
Line: 2024/04/25 07:16:07 received ENODEV (unmount request), thread exiting
Line: panic: sync: negative WaitGroup counter
Line: 
Line: goroutine 7278 [running]:
Line: sync.(*WaitGroup).Add(0x12f2780?, 0xc001158a58?)
Line: 	/usr/local/go/src/sync/waitgroup.go:62 +0xd8
Line: sync.(*WaitGroup).Done(0xc000363e40?)
Line: 	/usr/local/go/src/sync/waitgroup.go:87 +0x1a
Line: github.com/hanwen/go-fuse/v2/fuse.(*Server).loop(0xc0011589c0, 0xd0?)
Line: 	/home/marius/go/pkg/mod/github.com/hanwen/go-fuse/[email protected]/fuse/server.go:503 +0x22a
Line: created by github.com/hanwen/go-fuse/v2/fuse.(*Server).readRequest in goroutine 7225
Line: 	/home/marius/go/pkg/mod/github.com/hanwen/go-fuse/[email protected]/fuse/server.go:367 +0x549

These are my mount options:

	server, err := fs.Mount(d.pathToMount, root, &fs.Options{
		MountOptions: fuse.MountOptions{Debug: true, AllowOther: true, MaxReadAhead: FileBlockSize, FsName: "drive"},
		Logger: log.New(os.Stderr, "fuse", 0),
	})

I need the lazy unmount as I observed that without lazy, the mount points remain with ????? attribute and can't be removed.

marius-enlock avatar Apr 25 '24 04:04 marius-enlock