Skip to content

runtime: deadlock in runtime.findrunnable #35532

@vadyus

Description

@vadyus

What version of Go are you using (go version)?

$ go version
go version devel +99957b6 Tue Nov 12 05:35:33 2019 +0000 linux/amd64

Does this issue reproduce with the latest release?

No

What operating system and processor architecture are you using (go env)?

go env Output
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/root/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/root/sdk/gotip"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/root/sdk/gotip/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build330945311=/tmp/go-build -gno-record-gcc-switches"

What did you do?

Built production app with latest go tip and run it on production traffic. App is highly concurrent and uses timers a lot.

What did you expect to see?

Serving requests as usual

What did you see instead?

Deadlock. App not accepting connections and not responding to os signals. All threads stuck on

dlv
(dlv) threads
* Thread 13055 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13056 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13057 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13058 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13059 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13060 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13061 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13062 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13063 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13072 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13073 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13074 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13075 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13076 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13077 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13078 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13079 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13080 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13081 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13086 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13087 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13088 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13089 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13090 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13091 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13093 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13094 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13095 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13096 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13097 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13098 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13099 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13100 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13101 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13102 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13103 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13104 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13106 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13107 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13108 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13110 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13111 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13112 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13113 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13118 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13122 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13126 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13127 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13128 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13129 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13130 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13131 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13132 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13133 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13134 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13135 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13136 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13137 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13138 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13150 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13151 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13152 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13153 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13154 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13155 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13156 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13157 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13158 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13159 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13160 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13166 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13167 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13168 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13173 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13174 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13223 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13224 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13227 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13228 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13229 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13233 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13292 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13293 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13300 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13305 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13327 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13328 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13514 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13515 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13516 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13517 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13518 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13519 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13520 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
  Thread 13791 at 0x469bb3 /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563 runtime.futex
(dlv) tr 13157
Switched from 13055 to 13157
(dlv) bt
0  0x0000000000469bb3 in runtime.futex
   at /root/sdk/gotip/src/runtime/sys_linux_amd64.s:563
1  0x00000000004322d6 in runtime.futexsleep
   at /root/sdk/gotip/src/runtime/os_linux.go:44
2  0x000000000040cdff in runtime.notesleep
   at /root/sdk/gotip/src/runtime/lock_futex.go:151
3  0x000000000043bcf0 in runtime.stopm
   at /root/sdk/gotip/src/runtime/proc.go:1856
4  0x000000000043d2ed in runtime.findrunnable
   at /root/sdk/gotip/src/runtime/proc.go:2388
5  0x000000000043de2c in runtime.schedule
   at /root/sdk/gotip/src/runtime/proc.go:2548
6  0x000000000043e27d in runtime.park_m
   at /root/sdk/gotip/src/runtime/proc.go:2688
7  0x000000000046594b in runtime.mcall
   at /root/sdk/gotip/src/runtime/asm_amd64.s:318

Deadlock happens in random amount of time/served requests. Didn't find any patterns of when it happens. Increasing load (just setting higher weight on load balancer for that backend) helps trigger deadlock faster

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.release-blocker

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions