Skip to content
This repository has been archived by the owner on Aug 3, 2020. It is now read-only.

Iris relay crashes with fairly small numbers of idle tunnels #65

Open
moea opened this issue Jun 16, 2015 · 0 comments
Open

Iris relay crashes with fairly small numbers of idle tunnels #65

moea opened this issue Jun 16, 2015 · 0 comments

Comments

@moea
Copy link

moea commented Jun 16, 2015

Against iris 0.3.2 running with -dev, if I provide a null handleTunnel implementation for ServiceHandler (i.e. no closing), and rapidly initiate new tunnels (just calling .tunnel() in a tight loop), the iris relay crashes reliably around ~300. Note that I'm testing this with a single node connected to the relay - i.e. the node is connecting to itself, but I don't expect that matters.

I'm not really in a position to determine the most useful parts of this stacktrace, if any, so here goes:

        /go/src/github.com/project-iris/iris/proto/link/link.go:290 +0x62
created by github.com/project-iris/iris/proto/link.(*Link).Start
        /go/src/github.com/project-iris/iris/proto/link/link.go:139 +0xe0

goroutine 13719 [IO wait]:
net.runtime_pollWait(0x7ffd7c4c1a88, 0x72, 0x0)
        /usr/local/go/src/pkg/runtime/netpoll.goc:146 +0x66
net.(*pollDesc).Wait(0xc20bd368b0, 0x72, 0x0, 0x0)
        /usr/local/go/src/pkg/net/fd_poll_runtime.go:84 +0x46
net.(*pollDesc).WaitRead(0xc20bd368b0, 0x0, 0x0)
        /usr/local/go/src/pkg/net/fd_poll_runtime.go:89 +0x42
net.(*netFD).Read(0xc20bd36850, 0xc20bb91000, 0x1000, 0x1000, 0x0, 0x7ffd9df0f3c8, 0xb)
        /usr/local/go/src/pkg/net/fd_unix.go:242 +0x34c
net.(*conn).Read(0xc2080b3048, 0xc20bb91000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /usr/local/go/src/pkg/net/net.go:122 +0xe7
bufio.(*Reader).fill(0xc20957f140)
        /usr/local/go/src/pkg/bufio/bufio.go:97 +0x1b3
bufio.(*Reader).Read(0xc20957f140, 0xc2098aac20, 0x1, 0x9, 0x1, 0x0, 0x0)
        /usr/local/go/src/pkg/bufio/bufio.go:175 +0x230
io.ReadAtLeast(0x7ffd9df0f810, 0xc20957f140, 0xc2098aac20, 0x1, 0x9, 0x1, 0x0, 0x0, 0x0)
        /usr/local/go/src/pkg/io/io.go:289 +0xf7
io.ReadFull(0x7ffd9df0f810, 0xc20957f140, 0xc2098aac20, 0x1, 0x9, 0x0, 0x0, 0x0)
        /usr/local/go/src/pkg/io/io.go:307 +0x71
encoding/gob.decodeUintReader(0x7ffd9df0f810, 0xc20957f140, 0xc2098aac20, 0x9, 0x9, 0x0, 0x1, 0x0, 0x0)
        /usr/local/go/src/pkg/encoding/gob/decode.go:66 +0xa6
encoding/gob.(*Decoder).recvMessage(0xc20e1a7590, 0x0)
        /usr/local/go/src/pkg/encoding/gob/decoder.go:73 +0x57
encoding/gob.(*Decoder).decodeTypeSequence(0xc20e1a7590, 0xc20bd34600, 0x0)
        /usr/local/go/src/pkg/encoding/gob/decoder.go:159 +0x49
encoding/gob.(*Decoder).DecodeValue(0xc20e1a7590, 0x598660, 0xc20bd34618, 0x0, 0x160, 0x0, 0x0)
        /usr/local/go/src/pkg/encoding/gob/decoder.go:227 +0x193
encoding/gob.(*Decoder).Decode(0xc20e1a7590, 0x598660, 0xc20bd34618, 0x0, 0x0)
        /usr/local/go/src/pkg/encoding/gob/decoder.go:204 +0x279
github.com/project-iris/iris/proto/stream.(*Stream).Recv(0xc20bd386a0, 0x598660, 0xc20bd34618, 0x0, 0x0)
        /go/src/github.com/project-iris/iris/proto/stream/stream.go:175 +0x51
github.com/project-iris/iris/proto/link.(*Link).RecvDirect(0xc20bd344e0, 0x0, 0x0, 0x0)
        /go/src/github.com/project-iris/iris/proto/link/link.go:215 +0xb4
github.com/project-iris/iris/proto/link.(*Link).receiver(0xc20bd344e0)
        /go/src/github.com/project-iris/iris/proto/link/link.go:290 +0x62
created by github.com/project-iris/iris/proto/link.(*Link).Start
        /go/src/github.com/project-iris/iris/proto/link/link.go:139 +0xe0

goroutine 13747 [select]:
github.com/project-iris/iris/proto/iris.(*Tunnel).Recv(0xc20f08f7c0, 0x3b9aca00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        /go/src/github.com/project-iris/iris/proto/iris/tunnel.go:382 +0x2c0
github.com/project-iris/iris/service/relay.(*tunnel).receiver(0xc209528240)
        /go/src/github.com/project-iris/iris/service/relay/tunnel.go:174 +0xda
created by github.com/project-iris/iris/service/relay.(*relay).handleTunnelInit
        /go/src/github.com/project-iris/iris/service/relay/events.go:243 +0x482

goroutine 13686 [select]:
github.com/project-iris/iris/proto/iris.(*Tunnel).Recv(0xc215ce9f90, 0x3b9aca00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
        /go/src/github.com/project-iris/iris/proto/iris/tunnel.go:382 +0x2c0
github.com/project-iris/iris/service/relay.(*tunnel).receiver(0xc20957ff80)
        /go/src/github.com/project-iris/iris/service/relay/tunnel.go:174 +0xda
created by github.com/project-iris/iris/service/relay.func·003
        /go/src/github.com/project-iris/iris/service/relay/events.go:276 +0x146
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant