Skip to content

websocket: stuck go routines #1090

@adecaro

Description

@adecaro

From a go routine pprof report, I got:

Almost all goroutines in this profile are blocked in network I/O in the Fabric Smart Client websocket and gRPC layers (i.e. waiting for data), not spinning or obviously deadlocked on locks.​

Largest blocked groups
There are 58 goroutines blocked in (*streamHandler).handleIncoming reading from (*websocket.stream).Read, which in turn is stuck in bufio.(*Reader).fill / encoding/binary.ReadUvarint while reading from the underlying connection.​

Another 58 goroutines are blocked in (*websocket.subConn).ReadMessage → (*websocket.stream).readMessages, which go down into gorilla/websocket.(*Conn).ReadJSON and then to net.(*conn).Read via crypto/tls.(*Conn).Read, all ultimately waiting in internal/poll.runtime_pollWait for socket data.​

These connections are dead. They should not be there anymore

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingcomm

    Type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions