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

`make check` hangs in go tests

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.10.0
    • Component/s: Go - Library
    • Labels:
      None

      Description

      I noticed this in other work and bisected to THRIFT-3251. Looks like:

      git reset --hard f8ca05528e04a24b9f843c82c6600e4de5e42291
      make check
      ...
      Your bundle is complete!
      Use `bundle show [gemname]` to see where a bundled gem is installed.
      /home/jsirois/.rvm/gems/ruby-2.1.4@global/bin/bundle exec /home/jsirois/.rvm/rubies/ruby-2.1.4/bin/ruby -I. test_suite.rb
      Loaded suite test_suite
      Started
      ............
      
      Finished in 0.001784889 seconds.
      ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      12 tests, 25 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
      100% passed
      ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      6723.11 tests/s, 14006.47 assertions/s
      make[2]: Leaving directory '/home/jsirois/dev/3rdparty/jsirois-thrift/test/rb'
      Making check in go
      make[2]: Entering directory '/home/jsirois/dev/3rdparty/jsirois-thrift/test/go'
      Makefile:649: warning: overriding recipe for target 'check'
      Makefile:498: warning: ignoring old recipe for target 'check'
      mkdir -p src/gen
      ../../compiler/cpp/thrift -out src/gen --gen go:thrift_import=thrift ThriftTest.thrift
      [WARNING:/home/jsirois/dev/3rdparty/jsirois-thrift/test/go/ThriftTest.thrift:83] The "byte" type is a compatibility alias for "i8". Use "i8" to emphasize the signedness of this type.
      
      [WARNING:/home/jsirois/dev/3rdparty/jsirois-thrift/test/go/ThriftTest.thrift:44] No generator named 'noexist' could be found!
      [WARNING:/home/jsirois/dev/3rdparty/jsirois-thrift/test/go/ThriftTest.thrift:46] cpp generator does not accept 'noexist' as sub-namespace!
      ../../compiler/cpp/thrift -out src/gen --gen go:thrift_import=thrift ../StressTest.thrift
      [WARNING:/home/jsirois/dev/3rdparty/jsirois-thrift/test/StressTest.thrift:27] The "byte" type is a compatibility alias for "i8". Use "i8" to emphasize the signedness of this type.
      
      [WARNING:/home/jsirois/dev/3rdparty/jsirois-thrift/test/StressTest.thrift:31] Consider using the more efficient "binary" type instead of "list<byte>".
      [WARNING:/home/jsirois/dev/3rdparty/jsirois-thrift/test/StressTest.thrift:31] Consider using the more efficient "binary" type instead of "list<byte>".
      ln -nfs ../../../lib/go/thrift src/thrift
      GOPATH=`pwd` /usr/bin/go get github.com/golang/mock/gomock
      touch gopath
      GOPATH=`pwd` /usr/bin/go test -v common/...
      === RUN   TestAllConnection
      SIGQUIT: quit
      PC=0x45f9b9 m=0
      
      goroutine 0 [idle]:
      runtime.epollwait(0x4, 0x7fff2e2496b0, 0xffffffff00000080, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
      	/usr/lib/go/src/runtime/sys_linux_amd64.s:420 +0x19
      runtime.netpoll(0xa93501, 0x0)
      	/usr/lib/go/src/runtime/netpoll_epoll.go:68 +0x94
      runtime.findrunnable(0xc82001c000, 0x0)
      	/usr/lib/go/src/runtime/proc1.go:1520 +0x598
      runtime.schedule()
      	/usr/lib/go/src/runtime/proc1.go:1647 +0x267
      runtime.park_m(0xc820001680)
      	/usr/lib/go/src/runtime/proc1.go:1706 +0x18b
      runtime.mcall(0x7fff2e249dc0)
      	/usr/lib/go/src/runtime/asm_amd64.s:204 +0x5b
      
      goroutine 1 [chan receive]:
      testing.RunTests(0x93d3c0, 0xa8a5b0, 0x1, 0x1, 0x1)
      	/usr/lib/go/src/testing/testing.go:562 +0x8ad
      testing.(*M).Run(0xc820051ef8, 0x0)
      	/usr/lib/go/src/testing/testing.go:494 +0x70
      main.main()
      	common/_test/_testmain.go:54 +0x116
      
      goroutine 17 [syscall, locked to thread]:
      runtime.goexit()
      	/usr/lib/go/src/runtime/asm_amd64.s:1721 +0x1
      
      goroutine 5 [IO wait]:
      net.runtime_pollWait(0x7f1b6ce4afa0, 0x72, 0xc820010250)
      	/usr/lib/go/src/runtime/netpoll.go:157 +0x60
      net.(*pollDesc).Wait(0xc82005c370, 0x72, 0x0, 0x0)
      	/usr/lib/go/src/net/fd_poll_runtime.go:73 +0x3a
      net.(*pollDesc).WaitRead(0xc82005c370, 0x0, 0x0)
      	/usr/lib/go/src/net/fd_poll_runtime.go:78 +0x36
      net.(*netFD).accept(0xc82005c310, 0x0, 0x7f1b6ce4b060, 0xc82000a9c0)
      	/usr/lib/go/src/net/fd_unix.go:408 +0x27c
      net.(*TCPListener).AcceptTCP(0xc820030048, 0xffffffff, 0x0, 0x0)
      	/usr/lib/go/src/net/tcpsock_posix.go:254 +0x4d
      net.(*TCPListener).Accept(0xc820030048, 0x0, 0x0, 0x0, 0x0)
      	/usr/lib/go/src/net/tcpsock_posix.go:264 +0x3d
      thrift.(*TServerSocket).Accept(0xc820014640, 0x0, 0x0, 0x0, 0x0)
      	/home/jsirois/dev/3rdparty/jsirois-thrift/test/go/src/thrift/server_socket.go:73 +0x313
      thrift.(*TSimpleServer).AcceptLoop(0xc82005c2a0, 0x0, 0x0)
      	/home/jsirois/dev/3rdparty/jsirois-thrift/test/go/src/thrift/simple_server.go:123 +0x4e
      thrift.(*TSimpleServer).Serve(0xc82005c2a0, 0x0, 0x0)
      	/home/jsirois/dev/3rdparty/jsirois-thrift/test/go/src/thrift/simple_server.go:147 +0x64
      common.doUnit(0xc820098120, 0xc820053e60)
      	/home/jsirois/dev/3rdparty/jsirois-thrift/test/go/src/common/clientserver_test.go:68 +0x6f0
      common.TestAllConnection(0xc820098120)
      	/home/jsirois/dev/3rdparty/jsirois-thrift/test/go/src/common/clientserver_test.go:52 +0x1bc
      testing.tRunner(0xc820098120, 0xa8a5b0)
      	/usr/lib/go/src/testing/testing.go:456 +0x98
      created by testing.RunTests
      	/usr/lib/go/src/testing/testing.go:561 +0x86d
      
      goroutine 6 [semacquire]:
      net.runtime_Semacquire(0xc82005c318)
      	/usr/lib/go/src/runtime/sema.go:48 +0x26
      net.(*fdMutex).RWLock(0xc82005c310, 0x1, 0x4b7554)
      	/usr/lib/go/src/net/fd_mutex.go:143 +0x16c
      net.(*netFD).readLock(0xc82005c310, 0x0, 0x0)
      	/usr/lib/go/src/net/fd_unix.go:160 +0x39
      net.(*netFD).accept(0xc82005c310, 0x0, 0x0, 0x0)
      	/usr/lib/go/src/net/fd_unix.go:389 +0x6c
      net.(*TCPListener).AcceptTCP(0xc820030048, 0xffffffff, 0x0, 0x0)
      	/usr/lib/go/src/net/tcpsock_posix.go:254 +0x4d
      net.(*TCPListener).Accept(0xc820030048, 0x0, 0x0, 0x0, 0x0)
      	/usr/lib/go/src/net/tcpsock_posix.go:264 +0x3d
      thrift.(*TServerSocket).Accept(0xc820014640, 0x0, 0x0, 0x0, 0x0)
      	/home/jsirois/dev/3rdparty/jsirois-thrift/test/go/src/thrift/server_socket.go:73 +0x313
      thrift.(*TSimpleServer).AcceptLoop(0xc82005c2a0, 0x0, 0x0)
      	/home/jsirois/dev/3rdparty/jsirois-thrift/test/go/src/thrift/simple_server.go:123 +0x4e
      created by common.doUnit
      	/home/jsirois/dev/3rdparty/jsirois-thrift/test/go/src/common/clientserver_test.go:67 +0x6df
      
      rax    0xfffffffffffffffc
      rbx    0xffffffff
      rcx    0x45f9b9
      rdx    0x80
      rdi    0x4
      rsi    0x7fff2e2496b0
      rbp    0xa93e00
      rsp    0x7fff2e249670
      r8     0xa93e00
      r9     0x0
      r10    0xffffffff
      r11    0x246
      r12    0x8
      r13    0x93a7e4
      r14    0x9
      r15    0x8
      rip    0x45f9b9
      rflags 0x246
      cs     0x33
      fs     0x0
      gs     0x0
      *** Test killed with quit: ran too long (10m0s).
      FAIL	common	600.004s
      Makefile:649: recipe for target 'check' failed
      make[2]: *** [check] Error 1
      make[2]: Leaving directory '/home/jsirois/dev/3rdparty/jsirois-thrift/test/go'
      Makefile:593: recipe for target 'check-recursive' failed
      make[1]: *** [check-recursive] Error 1
      make[1]: Leaving directory '/home/jsirois/dev/3rdparty/jsirois-thrift/test'
      Makefile:635: recipe for target 'check-recursive' failed
      make: *** [check-recursive] Error 1
      

      A git reset --hard f8ca05528e04a24b9f843c82c6600e4de5e42291^ restores a passing make check.

        Attachments

        Issue Links

          Activity

            People

            • Assignee:
              jsirois John Sirois
              Reporter:
              jsirois John Sirois

              Dates

              • Created:
                Updated:
                Resolved:

                Issue deployment