Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-5495

Go lib server not close client when shutdown

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 0.15.0, 0.16.0
    • 0.17.0
    • Go - Library
    • None

    Description

      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

      Attachments

        Issue Links

          Activity

            People

              buptubuntu XiongYuesen
              buptubuntu XiongYuesen
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 17h 10m
                  17h 10m