You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Yuxuan Wang (Jira)" <ji...@apache.org> on 2022/02/17 00:16:00 UTC

[jira] [Resolved] (THRIFT-5495) Go lib server not close client when shutdown

     [ https://issues.apache.org/jira/browse/THRIFT-5495?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Yuxuan Wang resolved THRIFT-5495.
---------------------------------
    Resolution: Fixed

> 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, 0.16.0
>            Reporter: XiongYuesen
>            Assignee: XiongYuesen
>            Priority: Major
>             Fix For: 0.17.0
>
>          Time Spent: 17h 10m
>  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)