Golang cmd.Start() 有时挂在保险丝安装目录上

问题描述 投票:0回答:2

在go中我正在做类似的事情:

cmd := exec.Command(shell, "-c", someCmd)
[...]
errReader, err := cmd.StderrPipe()
outReader, err := cmd.StdoutPipe()
[...do something with those readers...]
cmd.Dir = aDirectory
[...]
err = cmd.Start()

如果 aDirectory 是普通目录,Start() 总是立即返回。

但是,如果它是我成功运行

ioutil.ReadDir(aDirectory)
的进程内熔断挂载(在设置 cmd.Dir 后挂载),则大约有 1/1000 次 Start() 挂起。我必须
sudo umount -f aDirectory
才能结束 go 进程。

我还没有深入了解 Start() 来查看它挂在哪里,但有什么想法可能会导致它出现问题吗?

我最好的选择是使用

CommandContext()
来代替 Start() 调用超时吗?你会如何很好地实现这一点?

go exec fuse
2个回答
0
投票

看起来像是某种神奇的时间问题。我注意到 os/exec_posix.go 中的 startProcess() 执行了 Stat() 调用,因此我在调用 Start() 之前自己执行了 Stat(),问题似乎已经消失(或者比 1/1000 更罕见) ).

编辑:仍然会发生,只是比较罕见。挂起时的堆栈跟踪:

goroutine 648 [running]:
github.com/VertebrateResequencing/wr/cmd.glob..func21.2(0xc0003c5140)
    /home/ubuntu/wr/cmd/runner.go:205 +0x131
created by github.com/VertebrateResequencing/wr/cmd.glob..func21
    /home/ubuntu/wr/cmd/runner.go:200 +0x69e

goroutine 1 [runnable]:
syscall.Close(0xf, 0xc0006cedc0, 0x4)
    /home/ubuntu/go/src/syscall/zsyscall_linux_amd64.go:309 +0xcc
syscall.forkExec(0xc0005a6d10, 0x9, 0xc0002fd8c0, 0x3, 0x3, 0xc0008288a8, 0x20, 0x0, 0xc00054cda0)
    /home/ubuntu/go/src/syscall/exec_unix.go:202 +0x3a9
syscall.StartProcess(0xc0005a6d10, 0x9, 0xc0002fd8c0, 0x3, 0x3, 0xc0008288a8, 0x2, 0x4, 0x0, 0x0)
    /home/ubuntu/go/src/syscall/exec_unix.go:241 +0x64
os.startProcess(0xc0005a6d10, 0x9, 0xc0002fd8c0, 0x3, 0x3, 0xc000828a38, 0xc0000d6280, 0x27, 0x27)
    /home/ubuntu/go/src/os/exec_posix.go:46 +0x213
os.StartProcess(0xc0005a6d10, 0x9, 0xc0002fd8c0, 0x3, 0x3, 0xc000828a38, 0x0, 0x0, 0x101)
    /home/ubuntu/go/src/os/exec.go:102 +0x7c
os/exec.(*Cmd).Start(0xc000235b80, 0x351a1ba9ae4, 0x287cf80)
    /home/ubuntu/go/src/os/exec/exec.go:383 +0x4bc
github.com/VertebrateResequencing/wr/jobqueue.(*Client).Execute(0xc0003829a0, 0xc00015fb80, 0xc00035ea88, 0x4, 0x0, 0x0)
    /home/ubuntu/wr/jobqueue/client.go:753 +0x144c
github.com/VertebrateResequencing/wr/cmd.glob..func21(0x286a2e0, 0xc000382840, 0x0, 0xb)
    /home/ubuntu/wr/cmd/runner.go:210 +0x74e
github.com/spf13/cobra.(*Command).execute(0x286a2e0, 0xc000382790, 0xb, 0xb, 0x286a2e0, 0xc000382790)
    /home/ubuntu/go/pkg/mod/github.com/spf13/[email protected]/command.go:766 +0x2cc
github.com/spf13/cobra.(*Command).ExecuteC(0x286a080, 0x14e26de, 0x286a080, 0xc0004dff30)
    /home/ubuntu/go/pkg/mod/github.com/spf13/[email protected]/command.go:852 +0x2fd
github.com/spf13/cobra.(*Command).Execute(0x286a080, 0xc0004dff88, 0x405700)
    /home/ubuntu/go/pkg/mod/github.com/spf13/[email protected]/command.go:800 +0x2b
github.com/VertebrateResequencing/wr/cmd.Execute()
    /home/ubuntu/wr/cmd/root.go:83 +0x2d
main.main()
    /home/ubuntu/wr/main.go:120 +0x90

goroutine 18 [runnable]:
os/signal.process(0x1b5d5a0, 0xc0004d8000)
    /home/ubuntu/go/src/os/signal/signal.go:223 +0xf6
os/signal.loop()
    /home/ubuntu/go/src/os/signal/signal_unix.go:23 +0x52
created by os/signal.init.0
    /home/ubuntu/go/src/os/signal/signal_unix.go:29 +0x41

goroutine 33 [chan receive, 8 minutes]:
k8s.io/klog.(*loggingT).flushDaemon(0x287d580)
    /home/ubuntu/go/pkg/mod/k8s.io/[email protected]/klog.go:941 +0x8b
created by k8s.io/klog.init.0
    /home/ubuntu/go/pkg/mod/k8s.io/[email protected]/klog.go:403 +0x69

goroutine 175 [runnable]:
github.com/VertebrateResequencing/wr/jobqueue.(*Job).Mount.func1(0xc000344d20, 0xc00015f340)
    /home/ubuntu/wr/jobqueue/job.go:574 +0x38
created by github.com/VertebrateResequencing/wr/jobqueue.(*Job).Mount
    /home/ubuntu/wr/jobqueue/job.go:573 +0x930

goroutine 9 [select, 8 minutes]:
nanomsg.org/go-mangos.(*dialer).dialer(0xc00052a1c0)
    /home/ubuntu/go/pkg/mod/nanomsg.org/[email protected]/core.go:629 +0x347
created by nanomsg.org/go-mangos.(*dialer).Dial
    /home/ubuntu/go/pkg/mod/nanomsg.org/[email protected]/core.go:584 +0xbc

goroutine 38 [select, 8 minutes]:
nanomsg.org/go-mangos/protocol/req.(*req).resender(0xc0003828f0)
    /home/ubuntu/go/pkg/mod/nanomsg.org/[email protected]/protocol/req/req.go:83 +0x100
created by nanomsg.org/go-mangos/protocol/req.(*req).AddEndpoint.func1
    /home/ubuntu/go/pkg/mod/nanomsg.org/[email protected]/protocol/req/req.go:185 +0x57

goroutine 39 [IO wait, 7 minutes]:
internal/poll.runtime_pollWait(0x7f0b6fcc5d60, 0x72, 0xc0005598c0)
    /home/ubuntu/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc000562018, 0x72, 0xffffffffffffff00, 0x1b51640, 0x2804620)
    /home/ubuntu/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc000562018, 0xc00046e800, 0x800, 0x800)
    /home/ubuntu/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc000562000, 0xc00046e800, 0x800, 0x800, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/internal/poll/fd_unix.go:169 +0x179
net.(*netFD).Read(0xc000562000, 0xc00046e800, 0x800, 0x800, 0x40884b, 0xc00002e000, 0x16bebe0)
    /home/ubuntu/go/src/net/fd_unix.go:202 +0x4f
net.(*conn).Read(0xc000418008, 0xc00046e800, 0x800, 0x800, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/net/net.go:177 +0x68
crypto/tls.(*block).readFromUntil(0xc000566090, 0x1b4f600, 0xc000418008, 0x5, 0xc000418008, 0xc00046e805)
    /home/ubuntu/go/src/crypto/tls/conn.go:492 +0x89
crypto/tls.(*Conn).readRecord(0xc00031c000, 0x19c2117, 0xc00031c120, 0x0)
    /home/ubuntu/go/src/crypto/tls/conn.go:593 +0xdd
crypto/tls.(*Conn).Read(0xc00031c000, 0xc0005a69d0, 0x8, 0x8, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/crypto/tls/conn.go:1145 +0xf1
io.ReadAtLeast(0x7f0b6fb25228, 0xc00031c000, 0xc0005a69d0, 0x8, 0x8, 0x8, 0x1633ae0, 0xc000559c01, 0xc0005a69d0)
    /home/ubuntu/go/src/io/io.go:310 +0x88
io.ReadFull(0x7f0b6fb25228, 0xc00031c000, 0xc0005a69d0, 0x8, 0x8, 0x43b11d, 0xc0003c45f8, 0x0)
    /home/ubuntu/go/src/io/io.go:329 +0x58
encoding/binary.Read(0x7f0b6fb25228, 0xc00031c000, 0x1b75aa0, 0x289ebd8, 0x15b5060, 0xc0005a69c8, 0x2, 0x2)
    /home/ubuntu/go/src/encoding/binary/binary.go:171 +0x50a
nanomsg.org/go-mangos.(*conn).Recv(0xc0000d0690, 0xc0002c08c0, 0x0, 0x0)
    /home/ubuntu/go/pkg/mod/nanomsg.org/[email protected]/conn.go:52 +0xa7
nanomsg.org/go-mangos.(*pipe).RecvMsg(0xc0000d06e0, 0xc000559f38)
    /home/ubuntu/go/pkg/mod/nanomsg.org/[email protected]/pipe.go:109 +0x37
nanomsg.org/go-mangos/protocol/req.(*req).receiver(0xc0003828f0, 0x1b6e220, 0xc0000d06e0)
    /home/ubuntu/go/pkg/mod/nanomsg.org/[email protected]/protocol/req/req.go:114 +0x91
created by nanomsg.org/go-mangos/protocol/req.(*req).AddEndpoint
    /home/ubuntu/go/pkg/mod/nanomsg.org/[email protected]/protocol/req/req.go:193 +0x174

goroutine 40 [select, 7 minutes]:
nanomsg.org/go-mangos/protocol/req.(*req).sender(0xc0003828f0, 0xc00056e840)
    /home/ubuntu/go/pkg/mod/nanomsg.org/[email protected]/protocol/req/req.go:149 +0x18e
created by nanomsg.org/go-mangos/protocol/req.(*req).AddEndpoint
    /home/ubuntu/go/pkg/mod/nanomsg.org/[email protected]/protocol/req/req.go:195 +0x1b2

goroutine 51 [runnable]:
crypto/tls.(*block).resize(0xc0002fc180, 0xf)
    /home/ubuntu/go/src/crypto/tls/conn.go:457 +0x72
crypto/tls.(*halfConn).decrypt(0xc000088820, 0xc0002fc180, 0x1f, 0xc0002fc180, 0x0)
    /home/ubuntu/go/src/crypto/tls/conn.go:314 +0x700
crypto/tls.(*Conn).readRecord(0xc000088700, 0x19c2117, 0xc000088820, 0x455220)
    /home/ubuntu/go/src/crypto/tls/conn.go:650 +0x27e
crypto/tls.(*Conn).Read(0xc000088700, 0xc0002e5000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/crypto/tls/conn.go:1145 +0xf1
net/http.(*persistConn).Read(0xc00007dc20, 0xc0002e5000, 0x1000, 0x1000, 0xc00055cc70, 0x404cd5, 0xc000830480)
    /home/ubuntu/go/src/net/http/transport.go:1497 +0x75
bufio.(*Reader).fill(0xc000509f80)
    /home/ubuntu/go/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).Peek(0xc000509f80, 0x1, 0x0, 0x0, 0x1, 0xc0008300c0, 0x0)
    /home/ubuntu/go/src/bufio/bufio.go:132 +0x3f
net/http.(*persistConn).readLoop(0xc00007dc20)
    /home/ubuntu/go/src/net/http/transport.go:1645 +0x1a2
created by net/http.(*Transport).dialConn
    /home/ubuntu/go/src/net/http/transport.go:1338 +0x941

goroutine 52 [select, 7 minutes]:
net/http.(*persistConn).writeLoop(0xc00007dc20)
    /home/ubuntu/go/src/net/http/transport.go:1885 +0x113
created by net/http.(*Transport).dialConn
    /home/ubuntu/go/src/net/http/transport.go:1339 +0x966

goroutine 41 [runnable]:
github.com/VertebrateResequencing/wr/jobqueue.(*Job).Mount.func1(0xc00089c060, 0xc000402580)
    /home/ubuntu/wr/jobqueue/job.go:574 +0x38
created by github.com/VertebrateResequencing/wr/jobqueue.(*Job).Mount
    /home/ubuntu/wr/jobqueue/job.go:573 +0x930

goroutine 660 [runnable]:
syscall.Syscall(0x0, 0xe, 0xc000cf8000, 0x11000, 0x30, 0x11000, 0x0)
    /home/ubuntu/go/src/syscall/asm_linux_amd64.s:18 +0x5
syscall.read(0xe, 0xc000cf8000, 0x11000, 0x11000, 0xc0007ed218, 0xc000766b80, 0xc000224408)
    /home/ubuntu/go/src/syscall/zsyscall_linux_amd64.go:732 +0x5a
syscall.Read(0xe, 0xc000cf8000, 0x11000, 0x11000, 0x460f6b, 0xc0007ed230, 0xc000766980)
    /home/ubuntu/go/src/syscall/syscall_unix.go:172 +0x49
github.com/hanwen/go-fuse/fuse.(*Server).readRequest.func1(0xc000766980, 0x9f7255)
    /home/ubuntu/go/pkg/mod/github.com/hanwen/[email protected]/fuse/server.go:266 +0x55
github.com/hanwen/go-fuse/fuse.handleEINTR(0xc000776758, 0x15ec360, 0xc00053ee20)
    /home/ubuntu/go/pkg/mod/github.com/hanwen/[email protected]/fuse/server.go:242 +0x27
github.com/hanwen/go-fuse/fuse.(*Server).readRequest(0xc0007ed1d0, 0xc00003a401, 0xc000000000, 0xc000000000)
    /home/ubuntu/go/pkg/mod/github.com/hanwen/[email protected]/fuse/server.go:264 +0x163
github.com/hanwen/go-fuse/fuse.(*Server).loop(0xc0007ed1d0, 0xc00084a701)
    /home/ubuntu/go/pkg/mod/github.com/hanwen/[email protected]/fuse/server.go:381 +0x6b
created by github.com/hanwen/go-fuse/fuse.(*Server).readRequest
    /home/ubuntu/go/pkg/mod/github.com/hanwen/[email protected]/fuse/server.go:291 +0x2d8

goroutine 376 [runnable]:
github.com/VertebrateResequencing/wr/jobqueue.(*Job).Mount.func1(0xc000344420, 0xc000402dc0)
    /home/ubuntu/wr/jobqueue/job.go:574 +0x38
created by github.com/VertebrateResequencing/wr/jobqueue.(*Job).Mount
    /home/ubuntu/wr/jobqueue/job.go:573 +0x930

goroutine 122 [runnable]:
github.com/VertebrateResequencing/wr/jobqueue.(*Job).Mount.func1(0xc0000b1440, 0xc00060e2c0)
    /home/ubuntu/wr/jobqueue/job.go:574 +0x38
created by github.com/VertebrateResequencing/wr/jobqueue.(*Job).Mount
    /home/ubuntu/wr/jobqueue/job.go:573 +0x930

goroutine 601 [runnable]:
syscall.Syscall(0x0, 0xe, 0xc000920000, 0x11000, 0xffffffffffffffff, 0x0, 0x13)
    /home/ubuntu/go/src/syscall/asm_linux_amd64.s:18 +0x5
syscall.read(0xe, 0xc000920000, 0x11000, 0x11000, 0xc0007ed218, 0xc000766a00, 0xc000830120)
    /home/ubuntu/go/src/syscall/zsyscall_linux_amd64.go:732 +0x5a
syscall.Read(0xe, 0xc000920000, 0x11000, 0x11000, 0x460f6b, 0xc0007ed230, 0xc000766800)
    /home/ubuntu/go/src/syscall/syscall_unix.go:172 +0x49
github.com/hanwen/go-fuse/fuse.(*Server).readRequest.func1(0xc000766800, 0xc0003a0180)
    /home/ubuntu/go/pkg/mod/github.com/hanwen/[email protected]/fuse/server.go:266 +0x55
github.com/hanwen/go-fuse/fuse.handleEINTR(0xc00077ef58, 0x15ec360, 0xc00056eee0)
    /home/ubuntu/go/pkg/mod/github.com/hanwen/[email protected]/fuse/server.go:242 +0x27
github.com/hanwen/go-fuse/fuse.(*Server).readRequest(0xc0007ed1d0, 0xc0003a0001, 0xc000000000, 0xc000000000)
    /home/ubuntu/go/pkg/mod/github.com/hanwen/[email protected]/fuse/server.go:264 +0x163
github.com/hanwen/go-fuse/fuse.(*Server).loop(0xc0007ed1d0, 0xc0001f7101)
    /home/ubuntu/go/pkg/mod/github.com/hanwen/[email protected]/fuse/server.go:381 +0x6b
created by github.com/hanwen/go-fuse/fuse.(*Server).readRequest
    /home/ubuntu/go/pkg/mod/github.com/hanwen/[email protected]/fuse/server.go:291 +0x2d8

goroutine 593 [runnable]:
github.com/VertebrateResequencing/wr/jobqueue.(*Job).Mount.func1(0xc0003531a0, 0xc000403600)
    /home/ubuntu/wr/jobqueue/job.go:574 +0x38
created by github.com/VertebrateResequencing/wr/jobqueue.(*Job).Mount
    /home/ubuntu/wr/jobqueue/job.go:573 +0x930

goroutine 531 [runnable]:
github.com/VertebrateResequencing/wr/jobqueue.(*Job).Mount.func1(0xc000352a80, 0xc00015f600)
    /home/ubuntu/wr/jobqueue/job.go:574 +0x38
created by github.com/VertebrateResequencing/wr/jobqueue.(*Job).Mount
    /home/ubuntu/wr/jobqueue/job.go:573 +0x930

goroutine 662 [runnable]:
github.com/VertebrateResequencing/wr/jobqueue.(*Job).Mount.func1(0xc000508d20, 0xc00015fb80)
    /home/ubuntu/wr/jobqueue/job.go:574 +0x38
created by github.com/VertebrateResequencing/wr/jobqueue.(*Job).Mount
    /home/ubuntu/wr/jobqueue/job.go:573 +0x930

goroutine 665 [sleep, 7 minutes]:
time.Sleep(0x3333383e)
    /home/ubuntu/go/src/runtime/time.go:105 +0x14f
github.com/minio/minio-go.Client.newRetryTimer.func2(0xc000830060, 0xa, 0xc000830000, 0xc00034c780)
    /home/ubuntu/go/pkg/mod/github.com/minio/[email protected]+incompatible/retry.go:82 +0x84
created by github.com/minio/minio-go.Client.newRetryTimer
    /home/ubuntu/go/pkg/mod/github.com/minio/[email protected]+incompatible/retry.go:72 +0x156

goroutine 649 [IO wait, 7 minutes]:
internal/poll.runtime_pollWait(0x7f0b6fcc5bc0, 0x72, 0xc000756c58)
    /home/ubuntu/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc000352978, 0x72, 0xffffffffffffff01, 0x1b51640, 0x2804620)
    /home/ubuntu/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc000352978, 0xc000589001, 0x1000, 0x1000)
    /home/ubuntu/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc000352960, 0xc000589000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/internal/poll/fd_unix.go:169 +0x179
os.(*File).read(0xc0007aee38, 0xc000589000, 0x1000, 0x1000, 0x9f, 0xffffffffffffff01, 0xc000756dc0)
    /home/ubuntu/go/src/os/file_unix.go:249 +0x4e
os.(*File).Read(0xc0007aee38, 0xc000589000, 0x1000, 0x1000, 0x0, 0x7f0b71f316c0, 0x0)
    /home/ubuntu/go/src/os/file.go:108 +0x69
bufio.(*Reader).fill(0xc000352a20)
    /home/ubuntu/go/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).ReadSlice(0xc000352a20, 0xc000756f0a, 0xc000000300, 0xc000756e90, 0x4051bf, 0xc000756e70, 0x9f51cb)
    /home/ubuntu/go/src/bufio/bufio.go:341 +0x36
bufio.(*Reader).ReadBytes(0xc000352a20, 0xc000756f0a, 0x0, 0x0, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/bufio/bufio.go:419 +0x70
github.com/VertebrateResequencing/wr/jobqueue.stdFilter.func1(0xc000352a20, 0x1b4d740, 0xc0007f0870, 0xc0003c5260)
    /home/ubuntu/wr/jobqueue/utils.go:368 +0x4c
created by github.com/VertebrateResequencing/wr/jobqueue.stdFilter
    /home/ubuntu/wr/jobqueue/utils.go:365 +0xcc

goroutine 267 [runnable]:
github.com/VertebrateResequencing/wr/jobqueue.(*Job).Mount.func1(0xc00007f2c0, 0xc000403340)
    /home/ubuntu/wr/jobqueue/job.go:574 +0x38
created by github.com/VertebrateResequencing/wr/jobqueue.(*Job).Mount
    /home/ubuntu/wr/jobqueue/job.go:573 +0x930

goroutine 279 [runnable]:
github.com/VertebrateResequencing/wr/jobqueue.(*Job).Mount.func1(0xc00089c4e0, 0xc00060e580)
    /home/ubuntu/wr/jobqueue/job.go:574 +0x38
created by github.com/VertebrateResequencing/wr/jobqueue.(*Job).Mount
    /home/ubuntu/wr/jobqueue/job.go:573 +0x930

goroutine 657 [semacquire, 7 minutes]:
sync.runtime_Semacquire(0xc0007ed2ac)
    /home/ubuntu/go/src/runtime/sema.go:56 +0x39
sync.(*WaitGroup).Wait(0xc0007ed2ac)
    /home/ubuntu/go/src/sync/waitgroup.go:130 +0x64
github.com/hanwen/go-fuse/fuse.(*Server).Serve(0xc0007ed1d0)
    /home/ubuntu/go/pkg/mod/github.com/hanwen/[email protected]/fuse/server.go:332 +0x7b
created by github.com/VertebrateResequencing/muxfys.(*MuxFys).Mount
    /home/ubuntu/muxfys/muxfys.go:367 +0x5bb

goroutine 407 [runnable]:
github.com/VertebrateResequencing/wr/jobqueue.(*Job).Mount.func1(0xc000508a80, 0xc00060e840)
    /home/ubuntu/wr/jobqueue/job.go:574 +0x38
created by github.com/VertebrateResequencing/wr/jobqueue.(*Job).Mount
    /home/ubuntu/wr/jobqueue/job.go:573 +0x930

goroutine 659 [runnable]:
fmt.Sprintf(0x190224f, 0x30, 0xc000781f58, 0x2, 0x2, 0xc000499801, 0xc0004a4000)
    /home/ubuntu/go/src/fmt/print.go:201 +0xdd
log.Printf(0x190224f, 0x30, 0xc000781f58, 0x2, 0x2)
    /home/ubuntu/go/src/log/log.go:295 +0x53
github.com/hanwen/go-fuse/fuse.(*Server).handleRequest(0xc0007ed1d0, 0xc000499680, 0xc000499680)
    /home/ubuntu/go/pkg/mod/github.com/hanwen/[email protected]/fuse/server.go:433 +0x1a4
github.com/hanwen/go-fuse/fuse.(*Server).loop(0xc0007ed1d0, 0xc00084a601)
    /home/ubuntu/go/pkg/mod/github.com/hanwen/[email protected]/fuse/server.go:400 +0x148
created by github.com/hanwen/go-fuse/fuse.(*Server).readRequest
    /home/ubuntu/go/pkg/mod/github.com/hanwen/[email protected]/fuse/server.go:291 +0x2d8

goroutine 650 [IO wait, 7 minutes]:
internal/poll.runtime_pollWait(0x7f0b6fcc5af0, 0x72, 0xc000853c58)
    /home/ubuntu/go/src/runtime/netpoll.go:173 +0x66
internal/poll.(*pollDesc).wait(0xc000352af8, 0x72, 0xffffffffffffff01, 0x1b51640, 0x2804620)
    /home/ubuntu/go/src/internal/poll/fd_poll_runtime.go:85 +0x9a
internal/poll.(*pollDesc).waitRead(0xc000352af8, 0xc000620001, 0x1000, 0x1000)
    /home/ubuntu/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Read(0xc000352ae0, 0xc000620000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
    /home/ubuntu/go/src/internal/poll/fd_unix.go:169 +0x179
os.(*File).read(0xc0007aee48, 0xc000620000, 0x1000, 0x1000, 0x0, 0x0, 0x40369c)
    /home/ubuntu/go/src/os/file_unix.go:249 +0x4e
os.(*File).Read(0xc0007aee48, 0xc000620000, 0x1000, 0x1000, 0x300000002, 0xc00069db00, 0xc000853dd0)
    /home/ubuntu/go/src/os/file.go:108 +0x69
bufio.(*Reader).fill(0xc000352ba0)
    /home/ubuntu/go/src/bufio/bufio.go:100 +0x10f
bufio.(*Reader).ReadSlice(0xc000352ba0, 0x7f0b71f3a70a, 0x3f, 0x43cc7b, 0xc0000b17c8, 0xc000853e58, 0x48677c)
    /home/ubuntu/go/src/bufio/bufio.go:341 +0x36
bufio.(*Reader).ReadBytes(0xc000352ba0, 0x40510a, 0xc0000b1918, 0xc00056c790, 0xc000853fb0, 0x0, 0xc000853f30)
    /home/ubuntu/go/src/bufio/bufio.go:419 +0x70
github.com/VertebrateResequencing/wr/jobqueue.stdFilter.func1(0xc000352ba0, 0x1b4d740, 0xc0007f08c0, 0xc0003c52c0)
    /home/ubuntu/wr/jobqueue/utils.go:368 +0x4c
created by github.com/VertebrateResequencing/wr/jobqueue.stdFilter
    /home/ubuntu/wr/jobqueue/utils.go:365 +0xcc

0
投票

这可能已经很久了,这个答案对你没有帮助,但请参阅 https://pkg.go.dev/github.com/hanwen/go-fuse/v2/fs#hdr-Deadlocks 的解释可能的死锁情况。

© www.soinside.com 2019 - 2024. All rights reserved.