Python или Ruby для разработчика.NET? [закрытый]

Похоже на какую-то магическую проблему времени. Я заметил, что startProcess () в os / exec_posix.go выполняет вызов Stat (), поэтому я сам выполнил Stat () перед вызовом Start (), и проблема, похоже, ушла (или стала меньше, чем 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/cobra@v0.0.0-20180829160745-99dc12355885/command.go:766 +0x2cc
github.com/spf13/cobra.(*Command).ExecuteC(0x286a080, 0x14e26de, 0x286a080, 0xc0004dff30)
    /home/ubuntu/go/pkg/mod/github.com/spf13/cobra@v0.0.0-20180829160745-99dc12355885/command.go:852 +0x2fd
github.com/spf13/cobra.(*Command).Execute(0x286a080, 0xc0004dff88, 0x405700)
    /home/ubuntu/go/pkg/mod/github.com/spf13/cobra@v0.0.0-20180829160745-99dc12355885/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/klog@v0.1.0/klog.go:941 +0x8b
created by k8s.io/klog.init.0
    /home/ubuntu/go/pkg/mod/k8s.io/klog@v0.1.0/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/go-mangos@v0.0.0-20180815160134-b7ff4263f0d7/core.go:629 +0x347
created by nanomsg.org/go-mangos.(*dialer).Dial
    /home/ubuntu/go/pkg/mod/nanomsg.org/go-mangos@v0.0.0-20180815160134-b7ff4263f0d7/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/go-mangos@v0.0.0-20180815160134-b7ff4263f0d7/protocol/req/req.go:83 +0x100
created by nanomsg.org/go-mangos/protocol/req.(*req).AddEndpoint.func1
    /home/ubuntu/go/pkg/mod/nanomsg.org/go-mangos@v0.0.0-20180815160134-b7ff4263f0d7/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/go-mangos@v0.0.0-20180815160134-b7ff4263f0d7/conn.go:52 +0xa7
nanomsg.org/go-mangos.(*pipe).RecvMsg(0xc0000d06e0, 0xc000559f38)
    /home/ubuntu/go/pkg/mod/nanomsg.org/go-mangos@v0.0.0-20180815160134-b7ff4263f0d7/pipe.go:109 +0x37
nanomsg.org/go-mangos/protocol/req.(*req).receiver(0xc0003828f0, 0x1b6e220, 0xc0000d06e0)
    /home/ubuntu/go/pkg/mod/nanomsg.org/go-mangos@v0.0.0-20180815160134-b7ff4263f0d7/protocol/req/req.go:114 +0x91
created by nanomsg.org/go-mangos/protocol/req.(*req).AddEndpoint
    /home/ubuntu/go/pkg/mod/nanomsg.org/go-mangos@v0.0.0-20180815160134-b7ff4263f0d7/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/go-mangos@v0.0.0-20180815160134-b7ff4263f0d7/protocol/req/req.go:149 +0x18e
created by nanomsg.org/go-mangos/protocol/req.(*req).AddEndpoint
    /home/ubuntu/go/pkg/mod/nanomsg.org/go-mangos@v0.0.0-20180815160134-b7ff4263f0d7/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/go-fuse@v0.0.0-20190111173210-425e8d5301f6/fuse/server.go:266 +0x55
github.com/hanwen/go-fuse/fuse.handleEINTR(0xc000776758, 0x15ec360, 0xc00053ee20)
    /home/ubuntu/go/pkg/mod/github.com/hanwen/go-fuse@v0.0.0-20190111173210-425e8d5301f6/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/go-fuse@v0.0.0-20190111173210-425e8d5301f6/fuse/server.go:264 +0x163
github.com/hanwen/go-fuse/fuse.(*Server).loop(0xc0007ed1d0, 0xc00084a701)
    /home/ubuntu/go/pkg/mod/github.com/hanwen/go-fuse@v0.0.0-20190111173210-425e8d5301f6/fuse/server.go:381 +0x6b
created by github.com/hanwen/go-fuse/fuse.(*Server).readRequest
    /home/ubuntu/go/pkg/mod/github.com/hanwen/go-fuse@v0.0.0-20190111173210-425e8d5301f6/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/go-fuse@v0.0.0-20190111173210-425e8d5301f6/fuse/server.go:266 +0x55
github.com/hanwen/go-fuse/fuse.handleEINTR(0xc00077ef58, 0x15ec360, 0xc00056eee0)
    /home/ubuntu/go/pkg/mod/github.com/hanwen/go-fuse@v0.0.0-20190111173210-425e8d5301f6/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/go-fuse@v0.0.0-20190111173210-425e8d5301f6/fuse/server.go:264 +0x163
github.com/hanwen/go-fuse/fuse.(*Server).loop(0xc0007ed1d0, 0xc0001f7101)
    /home/ubuntu/go/pkg/mod/github.com/hanwen/go-fuse@v0.0.0-20190111173210-425e8d5301f6/fuse/server.go:381 +0x6b
created by github.com/hanwen/go-fuse/fuse.(*Server).readRequest
    /home/ubuntu/go/pkg/mod/github.com/hanwen/go-fuse@v0.0.0-20190111173210-425e8d5301f6/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/minio-go@v6.0.12+incompatible/retry.go:82 +0x84
created by github.com/minio/minio-go.Client.newRetryTimer
    /home/ubuntu/go/pkg/mod/github.com/minio/minio-go@v6.0.12+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/go-fuse@v0.0.0-20190111173210-425e8d5301f6/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/go-fuse@v0.0.0-20190111173210-425e8d5301f6/fuse/server.go:433 +0x1a4
github.com/hanwen/go-fuse/fuse.(*Server).loop(0xc0007ed1d0, 0xc00084a601)
    /home/ubuntu/go/pkg/mod/github.com/hanwen/go-fuse@v0.0.0-20190111173210-425e8d5301f6/fuse/server.go:400 +0x148
created by github.com/hanwen/go-fuse/fuse.(*Server).readRequest
    /home/ubuntu/go/pkg/mod/github.com/hanwen/go-fuse@v0.0.0-20190111173210-425e8d5301f6/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
12
задан jfs 17 February 2009 в 00:29
поделиться

8 ответов

Оба языка мощны и забавны. Любой был бы полезным дополнением к Вашей панели инструментов.

Python имеет более многочисленное сообщество и вероятно более сформировавшуюся документацию и библиотеки. Его объектная ориентация немного непоследовательна и чувства (мне, по моему скромному мнению) как что-то, что было соединено болтом на языке. Можно изменить поведение класса во времени выполнения (исправление обезьяны), но не для предварительно скомпилированных классов, и оно обычно осуждается.

Ruby мог бы немного более отличаться от Вашего текущего опыта: это имеет некоторый аромат Smalltalk (вызов метода является более правильно посылающим за сообщением примером). Его объектная ориентация встроена с нуля, все классы открыты для модификации, и это - принятый - если немного страшный - занимаются. Сообщество меньше, менее сформировавшиеся библиотеки и покрытие документации меньше.

Оба языка будут иметь некоторый уровень прерванных обратной совместимостью их следующие выпуски majopr, у обоих есть реализации .NET (IronPython является производством, IronRuby, добирающийся там). У обоих есть веб-платформы, которые отражаются, их преимущества (ищите ТАК дебаты Django/Rails).

Если бы я никогда не видел Ruby, я был бы очень счастливой работой в Python и сделал так, не страдая при необходимости. Я всегда желал, что я мог сделать работу в Ruby. Но это - мое мнение, YMMV.

Править: Задумайтесь о нем, и даже при том, что это причиняет боль мне, если Вы стремитесь усилить свое знание платформы .NET, Вы могли бы быть лучшими от рассмотрения IronPython, поскольку это является более сформировавшимся, чем эквивалентный Ruby.

16
ответ дан 2 December 2019 в 04:43
поделиться

Сначала... хороший для Вас для желания расширить Ваше знание! Во-вторых, Вы сравниваете язык (Python) с веб-платформой (Ruby on Rails).

Я думаю, что Ваш наилучший вариант состоит в том, чтобы попробовать несколько различных платформ и в Python и в Ruby, сделать ту же довольно простую задачу в каждом и только затем выбрать, о каком требуется узнать больше. Направляющие хороши для Ruby, но это не единственное там. Для Python мне нравятся Опоры и Django.

За и против: Ruby является немного более чистым, мудрым языком, чем Python. Python имеет намного больший набор модулей.

Действительно ли это стоит изучить? Да, и к Python и к Ruby.

6
ответ дан 2 December 2019 в 04:43
поделиться

Если бы Вы - новичок, я рекомендовал бы судить Django, если Вы решаете начать изучать Python. Конечно, если Вы решаете, что Ruby является Вашим выбором разновидности, направляющие очевидный способ пойти. Какой бы ни язык, который Вы выбираете, я могу уверить Вас, что это будет хороший выбор.

Однако моим личным выбором является Python. Мне нравится язык, мне нравится сообщество, и я использую Python почти для каждого случая. Я использую его для приложений командной строки, приложений для GUI, и я использую его для веб-приложений (Django). О, и я использую его для сценариев системного администрирования в Windows и Linux также.

Сказав, что также, я рекомендовал бы, Вы учите язык как Haskell или Lisp также. Это действительно откроет Ваши глаза для новой перспективы к программированию. Кроме того, так как Вы говорите, что Вы главным образом знакомы с платформой .NET, я действительно рекомендовал бы запустить с F#, так как Вы уже будете знакомы с библиотеками, и это сделает переход намного более более гладким. Так или иначе, удача.

3
ответ дан 2 December 2019 в 04:43
поделиться

Всегда ценно выучить новый язык программирования. И и Python и Ruby являются хорошими для знания. Важно отметить, что, в то время как Python является языком, Ruby on Rails является платформой. По моему скромному мнению, необходимо изучить Ruby перед изучением направляющих.

Пойдите рубин попытки! видеть, нравится ли Вам он. Если Вы делаете, то попробуйте направляющие. Иначе попробуйте Python. Оба столь же полезны. Мне Ruby является большим количеством "забавы". Если Вам нравится Lisp, то Вам, вероятно, понравится Ruby. Если Вам нравится C, Вы могли бы предпочесть Python. Судите их обоих!

2
ответ дан 2 December 2019 в 04:43
поделиться

Эмпирическое правило - Python, если Вам нравятся строгие правила и Ruby, если Вы ненавидите их.

Другой: при обожании JavaScript - Ruby является выбором :)

2
ответ дан 2 December 2019 в 04:43
поделиться

Что? Никакое упоминание о IronPython?

IronPython является ведущим языком ДОЛЛАРА. Это позволяет Вам пользоваться всеми знакомыми библиотеками.NET, но через Python.

Я определенно попробовал бы Python и IronPython. Вы изучите много и могли бы даже стащить его в Ваши текущие проекты (можно встроить механизм IronPython в приложение.NET).

2
ответ дан 2 December 2019 в 04:43
поделиться

Если Вы надеетесь изучать Ruby on Rails, сайт руководств имеет замечательного гида для начала работы и дальнейшие руководства для улучшения Ваших направляющих-fu.

Кроме того, Порвался, Darell записал Руководству Кормильца для Ruby on Rails, который мог оказаться полезным для Вас также.

1
ответ дан 2 December 2019 в 04:43
поделиться

Я принял бы участие в Ruby. Кажется, имеет большее (или по крайней мере более активный) сообщество, темп новых проектов и продолжался, разработка является первоклассной, и ресурсы изучения, кажется, превосходят численностью и опережают те из Python. Я мог быть неправым, но это мои впечатления.

0
ответ дан 2 December 2019 в 04:43
поделиться