hanwen / go-fuse

FUSE bindings for Go
Other
2.05k stars 328 forks source link

runtime panic #109

Closed ccdunder closed 6 years ago

ccdunder commented 8 years ago

Logs:

2016/06/15 10:10:15 Forced cache drop on UnionFs([LoopbackFs(/usr/local/foo/home/ccdunder/overlayfs/south) cachingFileSystem(LoopbackFs(/usr/local/foo/home/ccdunder/overlayfs/south/READONLY))])
2016/06/15 10:10:15 Dropping cache for cachingFileSystem(LoopbackFs(/usr/local/foo/home/ccdunder/overlayfs/south/READONLY))
2016/06/15 10:10:15 Forced cache drop on UnionFs([LoopbackFs(/usr/local/foo/home/ccdunder/overlayfs/start) cachingFileSystem(LoopbackFs(/usr/local/foo/home/ccdunder/overlayfs/start/READONLY))])
2016/06/15 10:10:15 Dropping cache for cachingFileSystem(LoopbackFs(/usr/local/foo/home/ccdunder/overlayfs/start/READONLY))
2016/06/15 10:10:15 Forced cache drop on UnionFs([LoopbackFs(/usr/local/foo/home/ccdunder/overlayfs/west) cachingFileSystem(LoopbackFs(/usr/local/foo/home/ccdunder/overlayfs/west/READONLY))])
2016/06/15 10:10:15 Dropping cache for cachingFileSystem(LoopbackFs(/usr/local/foo/home/ccdunder/overlayfs/west/READONLY))
2016/06/15 10:10:15 Looking for new filesystems
2016/06/15 10:10:15 Done looking
2016/06/15 10:11:59 Forced cache drop on UnionFs([LoopbackFs(/usr/local/foo/home/ccdunder/overlayfs/3) cachingFileSystem(LoopbackFs(/usr/local/foo/home/ccdunder/overlayfs/3/READONLY))])
2016/06/15 10:11:59 Dropping cache for cachingFileSystem(LoopbackFs(/usr/local/foo/home/ccdunder/overlayfs/3/READONLY))
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x0 pc=0x4b6f45]

goroutine 26557188 [running]:
src/golang/gofuse/unionfs/unionfs.(*unionFS).GetAttr(0x4c2080c1720, 0x4c27fe04580, 0xac, 0x4c24b81bca0, 0x4c2080c18c8, 0x4c200000000)
        src/golang/gofuse/unionfs/unionfs.go:699 +0x2a5
src/golang/gofuse/fuse/pathfs/pathfs.(*pathInode).GetAttr(0x4c28286e440, 0x4c24b81bc20, 0x0, 0x0, 0x4c24b81bca0, 0x4c200000000)
        src/golang/gofuse/fuse/pathfs/pathfs.go:624 +0x1c0
src/golang/gofuse/fuse/nodefs/nodefs.(*FileSystemConnector).internalLookup(0x4c208048720, 0x4c24b81bc20, 0x0, 0x4c2a8e817c0, 0xc, 0x4c24b81bc88, 0x8, 0x4ea556)
        src/golang/gofuse/fuse/nodefs/fsops.go:74 +0x103
src/golang/gofuse/fuse/nodefs/nodefs.(*rawBridge).Lookup(0x4c208048720, 0x4c24b81bc88, 0x4c2a8e817c0, 0xc, 0x4c24b81bbf8, 0x0)
        src/golang/gofuse/fuse/nodefs/fsops.go:89 +0x222
src/golang/gofuse/fuse/fuse.doLookup(0x4c2080aa000, 0x4c24b81bb00)
        src/golang/gofuse/fuse/opcode.go:252 +0x97
src/golang/gofuse/fuse/fuse.(*Server).handleRequest(0x4c2080aa000, 0x4c24b81bb00)
        src/golang/gofuse/fuse/server.go:333 +0x29a
src/golang/gofuse/fuse/fuse.(*Server).loop(0x4c2080aa000, 0x1)
        src/golang/gofuse/fuse/server.go:312 +0xcd
created by src/golang/gofuse/fuse/fuse.(*Server).readRequest
        src/golang/gofuse/fuse/server.go:239 +0x625

goroutine 1 [semacquire, 5106 minutes]:
sync.(*WaitGroup).Wait(0x4c2080aa0e0)
        src/go/gc/src/sync/waitgroup.go:132 +0x169
src/golang/gofuse/fuse/fuse.(*Server).Serve(0x4c2080aa000)
        src/golang/gofuse/fuse/server.go:282 +0x74
main.main()
        src/golang/gofuse/example/autounionfs/main.go:72 +0x904

goroutine 26557155 [syscall]:
syscall.Syscall(0x0, 0x5, 0x4c295b8e000, 0x11000, 0xc, 0x4, 0x4ea757)
        src/go/gc/src/syscall/asm_linux_amd64.s:21 +0x5
syscall.read(0x5, 0x4c295b8e000, 0x11000, 0x11000, 0x18, 0x0, 0x0)
        src/go/gc/src/syscall/zsyscall_linux_amd64.go:860 +0x6e
syscall.Read(0x5, 0x4c295b8e000, 0x11000, 0x11000, 0x11000, 0x0, 0x0)
        src/go/gc/src/syscall/syscall_unix.go:136 +0x58
src/golang/gofuse/fuse/fuse.(*Server).readRequest(0x4c2080aa000, 0x4c2d94d0201, 0x4c2d94d0240, 0x0)
        src/golang/gofuse/fuse/server.go:215 +0x1e7
src/golang/gofuse/fuse/fuse.(*Server).loop(0x4c2080aa000, 0x1)
        src/golang/gofuse/fuse/server.go:293 +0x6a
created by src/golang/gofuse/fuse/fuse.(*Server).readRequest
        src/golang/gofuse/fuse/server.go:239 +0x625

goroutine 26555498 [syscall]:
syscall.Syscall(0x0, 0x5, 0x4c254bf8000, 0x11000, 0xc, 0x4, 0x4ea757)
        src/go/gc/src/syscall/asm_linux_amd64.s:21 +0x5
syscall.read(0x5, 0x4c254bf8000, 0x11000, 0x11000, 0x18, 0x0, 0x0)
        src/go/gc/src/syscall/zsyscall_linux_amd64.go:860 +0x6e
syscall.Read(0x5, 0x4c254bf8000, 0x11000, 0x11000, 0x11000, 0x0, 0x0)
        src/go/gc/src/syscall/syscall_unix.go:136 +0x58
src/golang/gofuse/fuse/fuse.(*Server).readRequest(0x4c2080aa000, 0x4c25d9e2901, 0x4c25d9e2900, 0x4c200000000)
        src/golang/gofuse/fuse/server.go:215 +0x1e7
src/golang/gofuse/fuse/fuse.(*Server).loop(0x4c2080aa000, 0x1)
        src/golang/gofuse/fuse/server.go:293 +0x6a
created by src/golang/gofuse/fuse/fuse.(*Server).readRequest
        src/golang/gofuse/fuse/server.go:239 +0x625
hanwen commented 8 years ago

curious. Which version is this? What version of Go do you use?

ccdunder commented 8 years ago

Hi Hanwen,

(Just hit this a 2nd time.) gofuse version 1104e6bae04e0e6aa252123d9b9dfe4326616191 go version go1.7rc3 linux/amd64

By the way, great project. Thank you very much for contributing it!

-C

hanwen commented 8 years ago

is there anything you did when this triggered?

hanwen commented 8 years ago

if you upgrade to the latest version, it will probably provide better diagnostics should this happen again.

hanwen commented 6 years ago

not reproducible. Closing.