node_exporter: fatal error: runtime.unlock: lock count with Go >= 1.10
Host operating system: output of uname -a
Linux endor 4.13.0-37-generic #42~16.04.1-Ubuntu SMP Wed Mar 7 16:03:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
node_exporter version: output of node_exporter --version
node_exporter, version 0.16.0-rc.0 (branch: HEAD, revision: 002c1ca02917406cbecc457162e2bdb1f29c2f49)
build user: root@5ff5455ac873
build date: 20180309-15:09:26
go version: go1.10
Used the release artifact at: https://github.com/prometheus/node_exporter/releases/download/v0.16.0-rc.0/node_exporter-0.16.0-rc.0.linux-amd64.tar.gz
node_exporter command line flags
None, the defaults for 0.16 match my needs
Are you running node_exporter in Docker?
No
What did you do that produced an error?
Just ran it for a couple of days
What did you expect to see?
It not to crash
What did you see instead?
Mar 28 19:47:54 endor node_exporter[18076]: fatal error: runtime·unlock: lock count
Mar 28 19:48:03 endor systemd[1]: node_exporter.service: Main process exited, code=killed, status=11/SEGV
That fatal error line got spewed about a 1000 times, all logged at 19:47:54 according to systemd.
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Comments: 88 (67 by maintainers)
Commits related to this issue
- Release v0.16.0-rc.3 Chaneges since v0.16.0-rc.2 * Remove gmond collector #852 * Build with Go 1.9[0] * Fix /proc/net/dev/ interface name handling #910 [0]: https://github.com/prometheus/node_export... — committed to prometheus/node_exporter by SuperQ 6 years ago
- Disable wifi collector by default Disable the wifi collector by default due to suspected cashing issues and goroutine leaks. * https://github.com/prometheus/node_exporter/issues/870 * https://github.... — committed to prometheus/node_exporter by SuperQ 6 years ago
- Disable wifi collector by default (#1037) * Disable wifi collector by default Disable the wifi collector by default due to suspected cashing issues and goroutine leaks. * https://github.com/prome... — committed to prometheus/node_exporter by SuperQ 6 years ago
- prometheus-node-exporter: work around prometheus/node_exporter#870 See: https://github.com/prometheus/node_exporter/issues/870 — committed to yanalunaterra-wip/nixpkgs by yanateras 6 years ago
- prometheus-node-exporter: work around prometheus/node_exporter#870 See: https://github.com/prometheus/node_exporter/issues/870 — committed to serokell/nixpkgs by yanateras 6 years ago
- prometheus-node-exporter: work around prometheus/node_exporter#870 See: https://github.com/prometheus/node_exporter/issues/870 — committed to serokell/nixpkgs by yanateras 6 years ago
- prometheus-node-exporter: work around prometheus/node_exporter#870 See: https://github.com/prometheus/node_exporter/issues/870 — committed to serokell/nixpkgs by yanateras 6 years ago
- prometheus-node-exporter: work around prometheus/node_exporter#870 https://github.com/NixOS/nixpkgs/pull/44824 — committed to serokell/nixpkgs by yanateras 6 years ago
- prometheus-node-exporter: work around prometheus/node_exporter#870 https://github.com/NixOS/nixpkgs/pull/44824 — committed to serokell/nixpkgs by yanateras 6 years ago
- Merge pull request #44824 from yegortimoshenko/20180809.194746/prometheus prometheus-node-exporter: work around prometheus/node_exporter#870 — committed to NixOS/nixpkgs by xeji 6 years ago
- defend against prometheus/node_exporter#870 — committed to majewsky/system-configuration by majewsky 6 years ago
Alright. Built one with Go 1.10.1, with
HEADat 768be139beb1522b092a0ec6ab7b7b3047216577.It’s deployed now, lets see what happens. It might take some time for the bug to manifest though.
Oh hey, you might remember me from that other time node_exporter found a Golang bug. I just hit this one too:
This is Gentoo again, versions:
Unfortunately this just happened on a VM with many siblings running on the same hardware, after days of uptime, and I will only have access to this hardware for a couple more days, so it’s not looking good for reproducibility. However, I’ll be running these VM images at home and see if I can get it to repro on other hardware.
I will try running under under the Go 1.11 beta and put our node_exporters up for the test. We have had 1-2 crashes per week on ~70 instances. I’ll report back in a week.
The temporary fix is to build with Go 1.9.x.
@LaurentDumont Please give
rc.3a try, it’s built with Go 1.9.5, which should be more stable.I got really annoyed with this bug so I decided to try and bruteforce it:
/root/gophers/gopath195/root/gophers/gopath110/root/gophers/builds/195/root/gophers/builds/110/root/gophers/<version>GOPATH=/root/gophers/gopath110 /root/gophers/go110/bin/go get github.com/prometheus/node_exporterGOPATH=/root/gophers/gopath195 /root/gophers/go195/bin/go get github.com/prometheus/node_exporter.gofile:git log --pretty=format:%H v0.15.2..v0.16.0-rc.2 --no-merges -- '*.go' > /root/gophers/commits.txt./vegeta attack -targets=targets.txt -rate=68 > results.binAnd now we wait.