[ https://issues.apache.org/jira/browse/THRIFT-5495?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jens Geyer updated THRIFT-5495: ------------------------------- Fix Version/s: (was: 0.16.0) > Go lib server not close client when shutdown > -------------------------------------------- > > Key: THRIFT-5495 > URL: https://issues.apache.org/jira/browse/THRIFT-5495 > Project: Thrift > Issue Type: Bug > Components: Go - Library > Affects Versions: 0.15.0 > Reporter: XiongYuesen > Assignee: XiongYuesen > Priority: Major > Time Spent: 12h 20m > Remaining Estimate: 0h > > If there is client connection and no data is send,we will encounter hang > druing server stop: > 1>If transport factory conf with socket timeout,we will hang until the > deadline of the socket > 2>If transport factory conf without socket timeout,we will hang forever > Stack As below: > goroutine 140800 [IO wait, 2706 minutes]: > internal/poll.runtime_pollWait(0x7fbf804fb100, 0x72) > runtime/netpoll.go:234 +0x89 > internal/poll.(*pollDesc).wait(0xc009087700, 0xc008196000, 0x0) > internal/poll/fd_poll_runtime.go:84 +0x32 > internal/poll.(*pollDesc).waitRead(...) > internal/poll/fd_poll_runtime.go:89 > internal/poll.(*FD).Read(0xc009087700, \{0xc008196000, 0x10000, 0x10000}) > internal/poll/fd_unix.go:167 +0x25a > net.(*netFD).Read(0xc009087700, \{0xc008196000, 0x0, 0xc0061089b8}) > net/fd_posix.go:56 +0x29 > net.(*conn).Read(0xc007c98038, \{0xc008196000, 0x0, 0xc006108978}) > net/net.go:183 +0x45 > github.com/apache/thrift/lib/go/thrift.(*socketConn).Read(0x246aae0, > \{0xc008196000, 0xc0058b4ed0, 0x246aae0}) > github.com/apache/thrift@v0.15.0/lib/go/thrift/socket_conn.go:101 +0x44 > github.com/apache/thrift/lib/go/thrift.(*TSocket).Read(0xc003555460, > \{0xc008196000, 0x10000, 0x10000}) > github.com/apache/thrift@v0.15.0/lib/go/thrift/socket.go:221 +0x67 > bufio.(*Reader).Read(0xc005657320, \{0xc001da1000, 0x1000, 0x203000}) > bufio/bufio.go:227 +0x1b4 > github.com/apache/thrift/lib/go/thrift.(*TBufferedTransport).Read(0xc0035554a0, > \{0xc001da1000, 0x431e10, 0x64}) > github.com/apache/thrift@v0.15.0/lib/go/thrift/buffered_transport.go:67 > +0x45 > bufio.(*Reader).Read(0xc005657380, \{0xc0090877f0, 0x4, 0x4b5bac0}) > bufio/bufio.go:227 +0x1b4 > io.ReadAtLeast(\{0x30c0520, 0xc005657380}, \{0xc0090877f0, 0x4, 0x4}, 0x4) > io/io.go:328 +0x9a > io.ReadFull(...) > io/io.go:347 > github.com/apache/thrift/lib/go/thrift.(*TFramedTransport).readFrame(0xc009087780) > github.com/apache/thrift@v0.15.0/lib/go/thrift/framed_transport.go:199 +0x3c > github.com/apache/thrift/lib/go/thrift.(*TFramedTransport).Read(0xc009087780, > \{0xc0090877f0, 0x1, 0x4}) > github.com/apache/thrift@v0.15.0/lib/go/thrift/framed_transport.go:148 > +0x130 > github.com/apache/thrift/lib/go/thrift.(*TFramedTransport).ReadByte(0xc009087780) > github.com/apache/thrift@v0.15.0/lib/go/thrift/framed_transport.go:157 +0x2e > github.com/apache/thrift/lib/go/thrift.(*TCompactProtocol).readByteDirect(...) > github.com/apache/thrift@v0.15.0/lib/go/thrift/compact_protocol.go:766 > github.com/apache/thrift/lib/go/thrift.(*TCompactProtocol).ReadMessageBegin(0xc008765040, > \{0x311a118, 0xc00319ede0}) > github.com/apache/thrift@v0.15.0/lib/go/thrift/compact_protocol.go:367 +0x62 -- This message was sent by Atlassian Jira (v8.20.1#820001)