Open RichieSams opened 2 weeks ago
Below is my go.mod file (with a few redactions)
module my-project/v3
require (
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2
github.com/antlr4-go/antlr/v4 v4.13.0
github.com/bmatcuk/doublestar v1.3.4
github.com/bsipos/thist v1.0.0
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
github.com/dustin/go-humanize v1.0.1
github.com/getsentry/sentry-go v0.27.0
github.com/go-ole/go-ole v1.3.0
github.com/gobwas/glob v0.2.3
github.com/gofrs/flock v0.8.1
github.com/gonum/stat v0.0.0-20181125101827-41a0da705a5b
github.com/gorilla/handlers v1.5.2
github.com/gorilla/mux v1.8.1
github.com/hashicorp/go-multierror v1.1.1
github.com/jotfs/fastcdc-go v0.2.0
github.com/json-iterator/go v1.1.12
github.com/juju/ratelimit v1.0.2
github.com/karrick/godirwalk v1.16.2
github.com/olekukonko/tablewriter v0.0.5
github.com/pkg/errors v0.9.1
github.com/restic/chunker v0.4.0
github.com/satori/go.uuid v1.2.0
github.com/schollz/progressbar/v3 v3.14.2
github.com/sirupsen/logrus v1.9.3
github.com/skratchdot/open-golang v0.0.0-20190104022628-a2dfa6d0dab6
github.com/spf13/cobra v1.8.0
github.com/spf13/viper v1.18.2
github.com/stretchr/testify v1.9.0
github.com/thediveo/enumflag v0.10.1
github.com/tinylib/msgp v1.1.9
github.com/xhit/go-str2duration/v2 v2.1.0
internal-a v1.7.0
internal-b v1.2.0
internal-c v1.7.0
internal-d/v2 v2.70.0
go.opentelemetry.io/otel v1.25.0
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.25.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.25.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.25.0
go.opentelemetry.io/otel/metric v1.25.0
go.opentelemetry.io/otel/sdk v1.25.0
go.opentelemetry.io/otel/sdk/metric v1.25.0
go.opentelemetry.io/otel/trace v1.25.0
golang.org/x/sync v0.7.0
golang.org/x/sys v0.19.0
golang.org/x/term v0.19.0
golang.org/x/text v0.14.0
google.golang.org/grpc v1.63.2
gopkg.in/yaml.v2 v2.4.0
)
require (
cloud.google.com/go v0.112.0 // indirect
cloud.google.com/go/compute v1.24.0 // indirect
cloud.google.com/go/compute/metadata v0.2.3 // indirect
cloud.google.com/go/iam v1.1.6 // indirect
cloud.google.com/go/storage v1.36.0 // indirect
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 // indirect
github.com/Microsoft/go-winio v0.6.0 // indirect
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect
github.com/Shopify/toxiproxy/v2 v2.4.0 // indirect
github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af // indirect
github.com/aws/aws-sdk-go v1.28.9 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
github.com/cespare/xxhash/v2 v2.2.0 // indirect
github.com/containerd/continuity v0.3.0 // indirect
github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
github.com/docker/cli v20.10.17+incompatible // indirect
github.com/docker/docker v20.10.7+incompatible // indirect
github.com/docker/go-connections v0.4.0 // indirect
github.com/docker/go-units v0.4.0 // indirect
github.com/fatih/color v1.14.1 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90 // indirect
github.com/fsnotify/fsnotify v1.7.0 // indirect
github.com/go-logr/logr v1.4.1 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang-jwt/jwt/v5 v5.0.0 // indirect
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/gonum/blas v0.0.0-20181208220705-f22b278b28ac // indirect
github.com/gonum/floats v0.0.0-20181209220543-c233463c7e82 // indirect
github.com/gonum/integrate v0.0.0-20181209220457-a422b5c0fdf2 // indirect
github.com/gonum/internal v0.0.0-20181124074243-f884aa714029 // indirect
github.com/gonum/lapack v0.0.0-20181123203213-e4cdc5a0bff9 // indirect
github.com/gonum/matrix v0.0.0-20181209220409-c518dec07be9 // indirect
github.com/google/s2a-go v0.1.7 // indirect
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
github.com/googleapis/gax-go/v2 v2.12.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0 // indirect
github.com/hashicorp/errwrap v1.0.0 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
github.com/hashicorp/go-hclog v1.5.0 // indirect
github.com/hashicorp/go-retryablehttp v0.7.0 // indirect
github.com/hashicorp/hcl v1.0.0 // indirect
github.com/imdario/mergo v0.3.12 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af // indirect
github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5 // indirect
github.com/kylelemons/godebug v1.1.0 // indirect
github.com/magiconair/properties v1.8.7 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-runewidth v0.0.14 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
github.com/minio/minio-go/v6 v6.0.46 // indirect
github.com/minio/sha256-simd v0.1.1 // indirect
github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/moby/term v0.0.0-20201216013528-df9cb8a40635 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect
github.com/opencontainers/image-spec v1.0.2 // indirect
github.com/opencontainers/runc v1.1.5 // indirect
github.com/ory/dockertest/v3 v3.10.0 // indirect
github.com/pelletier/go-toml/v2 v2.1.0 // indirect
github.com/philhofer/fwd v1.1.2 // indirect
github.com/pierrec/lz4 v2.0.5+incompatible // indirect
github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/prometheus/client_golang v1.12.1 // indirect
github.com/prometheus/client_model v0.2.0 // indirect
github.com/prometheus/common v0.32.1 // indirect
github.com/prometheus/procfs v0.7.3 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/sagikazarmark/locafero v0.4.0 // indirect
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
github.com/sourcegraph/conc v0.3.0 // indirect
github.com/spf13/afero v1.11.0 // indirect
github.com/spf13/cast v1.6.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/subosito/gotenv v1.6.0 // indirect
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.30.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 // indirect
go.opentelemetry.io/proto/otlp v1.1.0 // indirect
go.uber.org/atomic v1.9.0 // indirect
go.uber.org/multierr v1.9.0 // indirect
golang.org/x/crypto v0.21.0 // indirect
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect
golang.org/x/image v0.0.0-20190802002840-cff245a6509b // indirect
golang.org/x/mod v0.13.0 // indirect
golang.org/x/net v0.23.0 // indirect
golang.org/x/oauth2 v0.17.0 // indirect
golang.org/x/time v0.5.0 // indirect
golang.org/x/tools v0.14.0 // indirect
gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b // indirect
google.golang.org/api v0.162.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20240227224415-6ceb2ff114de // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect
google.golang.org/protobuf v1.33.0 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
nhooyr.io/websocket v1.8.10 // indirect
)
replace github.com/antlr/antlr4 v0.0.0-20180905200841-432022fc1ca0 => github.com/michilu/antlr4 v0.0.0-20180803091604-411960b1878f
replace github.com/uber/jaeger-lib v2.0.0+incompatible => github.com/uber/jaeger-lib v1.5.0
replace github.com/skratchdot/open-golang => github.com/seanhoughton/open-golang v0.0.0-20190322203133-7972e18a724d
replace git.apache.org/thrift.git => github.com/apache/thrift v0.12.0
go 1.21
This seems to be related to: https://github.com/golang/go/issues/56774
But in that issue, the poster said updating to 1.21.3 fixed it. However, we're using 1.21.4, and still seeing the issue.
Slightly different panic:
unexpected fault address 0x411a89e
fatal error: fault
[signal 0xc0000005 code=0x0 addr=0x411a89e pc=0xe003e1]
goroutine 1 [running, locked to thread]:
runtime.throw({0x1f23e6f?, 0x0?})
runtime/panic.go:1077 +0x65 fp=0xc0000fbd58 sp=0xc0000fbd28 pc=0xd9c7a5
runtime.sigpanic()
runtime/signal_windows.go:377 +0xd0 fp=0xc0000fbda0 sp=0xc0000fbd58 pc=0xdb06b0
time.map.init.1()
time/zoneinfo_abbrs_windows.go:154 +0x81 fp=0xc0000fbe00 sp=0xc0000fbda0 pc=0xe003e1
time.init()
time/zoneinfo_abbrs_windows.go:15 +0x25 fp=0xc0000fbe10 sp=0xc0000fbe00 pc=0xe001a5
runtime.doInit1(0x2b81dc0)
runtime/proc.go:6740 +0xdd fp=0xc0000fbf40 sp=0xc0000fbe10 pc=0xdabf1d
runtime.doInit(...)
runtime/proc.go:6707
runtime.main()
runtime/proc.go:249 +0x356 fp=0xc0000fbfe0 sp=0xc0000fbf40 pc=0xd9f096
runtime.goexit()
runtime/asm_amd64.s:1650 +0x1 fp=0xc0000fbfe8 sp=0xc0000fbfe0 pc=0xdcd141
goroutine 2 [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
runtime/proc.go:398 +0xce fp=0xc0000f7fa8 sp=0xc0000f7f88 pc=0xd9f40e
runtime.goparkunlock(...)
runtime/proc.go:404
runtime.forcegchelper()
runtime/proc.go:322 +0xb8 fp=0xc0000f7fe0 sp=0xc0000f7fa8 pc=0xd9f298
runtime.goexit()
runtime/asm_amd64.s:1650 +0x1 fp=0xc0000f7fe8 sp=0xc0000f7fe0 pc=0xdcd141
created by runtime.init.6 in goroutine 1
runtime/proc.go:310 +0x1a
goroutine 3 [GC sweep wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
runtime/proc.go:398 +0xce fp=0xc0000f9f78 sp=0xc0000f9f58 pc=0xd9f40e
runtime.goparkunlock(...)
runtime/proc.go:404
runtime.bgsweep(0x0?)
runtime/mgcsweep.go:280 +0x94 fp=0xc0000f9fc8 sp=0xc0000f9f78 pc=0xd88ab4
runtime.gcenable.func1()
runtime/mgc.go:200 +0x25 fp=0xc0000f9fe0 sp=0xc0000f9fc8 pc=0xd7dc25
runtime.goexit()
runtime/asm_amd64.s:1650 +0x1 fp=0xc0000f9fe8 sp=0xc0000f9fe0 pc=0xdcd141
created by runtime.gcenable in goroutine 1
runtime/mgc.go:200 +0x66
goroutine 4 [GC scavenge wait]:
runtime.gopark(0xc0000480e0?, 0x21b8428?, 0x1?, 0x0?, 0xc0000f4b60?)
runtime/proc.go:398 +0xce fp=0xc000109f70 sp=0xc000109f50 pc=0xd9f40e
runtime.goparkunlock(...)
runtime/proc.go:404
runtime.(*scavengerState).park(0x2e63e20)
runtime/mgcscavenge.go:425 +0x49 fp=0xc000109fa0 sp=0xc000109f70 pc=0xd86369
runtime.bgscavenge(0x0?)
runtime/mgcscavenge.go:653 +0x3c fp=0xc000109fc8 sp=0xc000109fa0 pc=0xd868fc
runtime.gcenable.func2()
runtime/mgc.go:201 +0x25 fp=0xc000109fe0 sp=0xc000109fc8 pc=0xd7dbc5
runtime.goexit()
runtime/asm_amd64.s:1650 +0x1 fp=0xc000109fe8 sp=0xc000109fe0 pc=0xdcd141
created by runtime.gcenable in goroutine 1
runtime/mgc.go:201 +0xa5
A new type of panic:
fatal error: runtime: name offset out of range
goroutine 1 [running, locked to thread]:
runtime.throw({0x187d65c?, 0x1850bb5?})
runtime/panic.go:1077 +0x65 fp=0xc0000fbcf8 sp=0xc0000fbcc8 pc=0x68c7a5
runtime.resolveNameOff(0x284d14a?, 0x6c5160)
runtime/type.go:119 +0x245 fp=0xc0000fbd50 sp=0xc0000fbcf8 pc=0x6b1765
internal/reflectlite.resolveNameOff(0x0?, 0x0?)
runtime/runtime1.go:626 +0x13 fp=0xc0000fbd70 sp=0xc0000fbd50 pc=0x6b82d3
internal/reflectlite.rtype.nameOff(...)
internal/reflectlite/type.go:244
internal/reflectlite.rtype.String({0xc000218030?})
internal/reflectlite/type.go:256 +0x1b fp=0xc0000fbd98 sp=0xc0000fbd70 pc=0x6c4d7b
internal/reflectlite.elem(0xc0000fbdf0?)
internal/reflectlite/type.go:320 +0x73 fp=0xc0000fbdd0 sp=0xc0000fbd98 pc=0x6c5113
internal/reflectlite.rtype.Elem({0xc000218000?})
internal/reflectlite/type.go:324 +0x13 fp=0xc0000fbde8 sp=0xc0000fbdd0 pc=0x6c5173
errors.init()
errors/wrap.go:136 +0x43 fp=0xc0000fbe10 sp=0xc0000fbde8 pc=0x6c90c3
runtime.doInit1(0x24bccc0)
runtime/proc.go:6740 +0xdd fp=0xc0000fbf40 sp=0xc0000fbe10 pc=0x69bf1d
runtime.doInit(...)
runtime/proc.go:6707
runtime.main()
runtime/proc.go:249 +0x356 fp=0xc0000fbfe0 sp=0xc0000fbf40 pc=0x68f096
runtime.goexit()
runtime/asm_amd64.s:1650 +0x1 fp=0xc0000fbfe8 sp=0xc0000fbfe0 pc=0x6bd241
goroutine 2 [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
runtime/proc.go:398 +0xce fp=0xc0000f7fa8 sp=0xc0000f7f88 pc=0x68f40e
runtime.goparkunlock(...)
runtime/proc.go:404
runtime.forcegchelper()
runtime/proc.go:322 +0xb8 fp=0xc0000f7fe0 sp=0xc0000f7fa8 pc=0x68f298
runtime.goexit()
runtime/asm_amd64.s:1650 +0x1 fp=0xc0000f7fe8 sp=0xc0000f7fe0 pc=0x6bd241
created by runtime.init.6 in goroutine 1
runtime/proc.go:310 +0x1a
goroutine 3 [GC sweep wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
runtime/proc.go:398 +0xce fp=0xc0000f9f78 sp=0xc0000f9f58 pc=0x68f40e
runtime.goparkunlock(...)
runtime/proc.go:404
runtime.bgsweep(0x0?)
runtime/mgcsweep.go:280 +0x94 fp=0xc0000f9fc8 sp=0xc0000f9f78 pc=0x678ab4
runtime.gcenable.func1()
runtime/mgc.go:200 +0x25 fp=0xc0000f9fe0 sp=0xc0000f9fc8 pc=0x66dc25
runtime.goexit()
runtime/asm_amd64.s:1650 +0x1 fp=0xc0000f9fe8 sp=0xc0000f9fe0 pc=0x6bd241
created by runtime.gcenable in goroutine 1
runtime/mgc.go:200 +0x66
goroutine 18 [GC scavenge wait]:
runtime.gopark(0xc0000480e0?, 0x1ae7600?, 0x1?, 0x0?, 0xc0002041a0?)
runtime/proc.go:398 +0xce fp=0xc00020df70 sp=0xc00020df50 pc=0x68f40e
runtime.goparkunlock(...)
runtime/proc.go:404
runtime.(*scavengerState).park(0x27ea440)
runtime/mgcscavenge.go:425 +0x49 fp=0xc00020dfa0 sp=0xc00020df70 pc=0x676369
runtime.bgscavenge(0x0?)
runtime/mgcscavenge.go:653 +0x3c fp=0xc00020dfc8 sp=0xc00020dfa0 pc=0x6768fc
runtime.gcenable.func2()
runtime/mgc.go:201 +0x25 fp=0xc00020dfe0 sp=0xc00020dfc8 pc=0x66dbc5
runtime.goexit()
runtime/asm_amd64.s:1650 +0x1 fp=0xc00020dfe8 sp=0xc00020dfe0 pc=0x6bd241
created by runtime.gcenable in goroutine 1
runtime/mgc.go:201 +0xa5
NOTE: We compile inside docker. The output below is from running go env within the docker container that we use. We cross-compile for linux, windows, and darwin. The workers having a problem in this case are running windows/amd64.
These workers are bare metal AMD Threadripper machines running Windows 10.
Just to be clear, you're cross compiling inside docker, but running the program on real Windows machines? Do you see it only on a specific type of Windows machines? Thanks.
Just to be clear, you're cross compiling inside docker, but running the program on real Windows machines?
Correct. We cross compile in docker. But we're running in native Windows.
Do you see it only on a specific type of Windows machines? Thanks.
Yes. We only see it on our AMD servers. Example specs of the machines is listed above in the original post. None of our Intel-based servers are seeing these panics
Let me know if you have any other questions. :)
Thanks. Have you tried running the program under the race detector? Is the program using cgo? Is there a way we can reproduce the issue ourselves?
cc @golang/windows
Have you tried running the program under the race detector?
No, but that's a good idea. I'll give that a shot today
Is the program using cgo?
No, we disable it with CGO_ENABLED=0
when compiling
Is there a way we can reproduce the issue ourselves?
Unfortunately, it's a proprietary program. But given it's panic'ing on init() and in standard libraries, I'm going to see if I can create a small "hello world" test program and just run it continuously on the machines to see if I can reproduce it.
I'm wondering if there is some small incorrect assumption with AMD hardware in the golang runtime code? I see this other issue, which isn't the same stack trace, but is also limited to AMD hardware: https://github.com/golang/go/issues/62440
Some more callstacks from our servers:
fatal: morestack on g0
Exception 0x80000003 0x0 0x0 0xccfa1
PC=0xccfa1
runtime.abort()
runtime/asm_amd64.s:1113 +0x1 fp=0xc0000f9bc0 sp=0xc0000f9bb8 pc=0xccfa1
traceback: unexpected SPWRITE function runtime.morestack
runtime.morestack()
runtime/asm_amd64.s:560 +0x24 fp=0xc0000f9bc8 sp=0xc0000f9bc0 pc=0xcb204
goroutine 1 [running, locked to thread]:
runtime.doInit1(0x1e82a00?)
runtime/proc.go:6711 +0x4c5 fp=0xc0000f9f40 sp=0xc0000f9f38 pc=0xac305
runtime.doInit(...)
runtime/proc.go:6707
runtime.main()
runtime/proc.go:249 +0x356 fp=0xc0000f9fe0 sp=0xc0000f9f40 pc=0x9f096
runtime.goexit()
runtime/asm_amd64.s:1650 +0x1 fp=0xc0000f9fe8 sp=0xc0000f9fe0 pc=0xcd141
goroutine 2 [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
runtime/proc.go:398 +0xce fp=0xc0000f5fa8 sp=0xc0000f5f88 pc=0x9f40e
runtime.goparkunlock(...)
runtime/proc.go:404
runtime.forcegchelper()
runtime/proc.go:322 +0xb8 fp=0xc0000f5fe0 sp=0xc0000f5fa8 pc=0x9f298
runtime.goexit()
runtime/asm_amd64.s:1650 +0x1 fp=0xc0000f5fe8 sp=0xc0000f5fe0 pc=0xcd141
created by runtime.init.6 in goroutine 1
runtime/proc.go:310 +0x1a
goroutine 3 [GC sweep wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
runtime/proc.go:398 +0xce fp=0xc0000f7f78 sp=0xc0000f7f58 pc=0x9f40e
runtime.goparkunlock(...)
runtime/proc.go:404
runtime.bgsweep(0x0?)
runtime/mgcsweep.go:280 +0x94 fp=0xc0000f7fc8 sp=0xc0000f7f78 pc=0x88ab4
runtime.gcenable.func1()
runtime/mgc.go:200 +0x25 fp=0xc0000f7fe0 sp=0xc0000f7fc8 pc=0x7dc25
runtime.goexit()
runtime/asm_amd64.s:1650 +0x1 fp=0xc0000f7fe8 sp=0xc0000f7fe0 pc=0xcd141
created by runtime.gcenable in goroutine 1
runtime/mgc.go:200 +0x66
goroutine 4 [GC scavenge wait]:
runtime.gopark(0xc0000440e0?, 0x14b8428?, 0x1?, 0x0?, 0xc0000f2b60?)
runtime/proc.go:398 +0xce fp=0xc000107f70 sp=0xc000107f50 pc=0x9f40e
runtime.goparkunlock(...)
runtime/proc.go:404
runtime.(*scavengerState).park(0x2163e20)
runtime/mgcscavenge.go:425 +0x49 fp=0xc000107fa0 sp=0xc000107f70 pc=0x86369
runtime.bgscavenge(0x0?)
runtime/mgcscavenge.go:653 +0x3c fp=0xc000107fc8 sp=0xc000107fa0 pc=0x868fc
runtime.gcenable.func2()
runtime/mgc.go:201 +0x25 fp=0xc000107fe0 sp=0xc000107fc8 pc=0x7dbc5
runtime.goexit()
runtime/asm_amd64.s:1650 +0x1 fp=0xc000107fe8 sp=0xc000107fe0 pc=0xcd141
created by runtime.gcenable in goroutine 1
runtime/mgc.go:201 +0xa5
rax 0x17
rbx 0x2164e80
rcx 0x2164c00
rdi 0xcc34a2e000
rsi 0xc0000f9ab8
rbp 0xc0000f9bd8
rsp 0xc0000f9bb8
r8 0xc0000f9888
r9 0xc0000f9a60
r10 0x0
r11 0x246
r12 0xcc34dff6d0
r13 0x1000
r14 0x21645e0
r15 0xb2c
rip 0xccfa1
rflags 0x212
cs 0x33
fs 0x53
gs 0x2b
panic: godebug: Value of name not listed in godebugs.All:
goroutine 1 [running]:
internal/godebug.(*Setting).Value.func1()
internal/godebug/godebug.go:141 +0xb9
sync.(*Once).doSlow(0x28ba410?, 0xc0000f9dd8?)
sync/once.go:74 +0xbf
sync.(*Once).Do(...)
sync/once.go:65
internal/godebug.(*Setting).Value(0x28ba410)
internal/godebug/godebug.go:138 +0x48
internal/intern.safeMap(...)
internal/intern/intern.go:74
internal/intern.init()
internal/intern/intern.go:66 +0x48
Another callstack:
panic: runtime error: makeslice: cap out of range
goroutine 1 [running]:
runtime/metrics.init.0()
runtime/metrics/description.go:457 +0xa6
fatal error: fault
[signal 0xc0000005 code=0x0 addr=0x1f800608 pc=0x142df7e]
goroutine 1 gp=0xc0000fc000 m=0 mp=0x3240880 [running, locked to thread]:
runtime.throw({0x22296ae?, 0xfe15f40ffe15f40f?})
runtime/panic.go:1023 +0x65 fp=0xc00019d798 sp=0xc00019d768 pc=0x102ebc5
runtime.sigpanic()
runtime/signal_windows.go:414 +0xd0 fp=0xc00019d7e0 sp=0xc00019d798 pc=0x1044670
golang.org/x/text/internal/language/compact.getCoreIndex.func1(0x249?)
golang.org/x/text@v0.14.0/internal/language/compact/compact.go:32 +0x1e fp=0xc00019d800 sp=0xc00019d7e0 pc=0x142df7e
sort.Search(0xc0001ee060?, 0xc00019d848)
sort/search.go:65 +0x46 fp=0xc00019d830 sp=0xc00019d800 pc=0x109db26
golang.org/x/text/internal/language/compact.getCoreIndex({0x0, 0x0, 0x0, 0x0, 0x0, {0x0, 0x0}})
golang.org/x/text@v0.14.0/internal/language/compact/compact.go:31 +0x9f fp=0xc00019d888 sp=0xc00019d830 pc=0x142debf
golang.org/x/text/internal/language/compact.FromTag({0x0, 0x0, 0x0, 0x0, 0x0, {0x0, 0x0}})
golang.org/x/text@v0.14.0/internal/language/compact/language.go:238 +0x5a5 fp=0xc00019db90 sp=0xc00019d888 pc=0x142f145
golang.org/x/text/internal/language/compact.Make({0x0, 0x0, 0x0, 0x0, 0x0, {0x0, 0x0}})
golang.org/x/text@v0.14.0/internal/language/compact/language.go:53 +0x285 fp=0xc00019dc30 sp=0xc00019db90 pc=0x142e505
golang.org/x/text/language.makeTag(...)
golang.org/x/text@v0.14.0/language/language.go:25
golang.org/x/text/language.CanonType.Parse(0x17, {0x2241259?, 0xc0001bc070?})
golang.org/x/text@v0.14.0/language/parse.go:62 +0x1f7 fp=0xc00019dd58 sp=0xc00019dc30 pc=0x14343d7
golang.org/x/text/language.Parse(...)
golang.org/x/text@v0.14.0/language/parse.go:35
golang.org/x/text/language.MustParse({0x2241259?, 0x15?})
golang.org/x/text@v0.14.0/language/tags.go:14 +0x25 fp=0xc00019dd80 sp=0xc00019dd58 pc=0x1434645
golang.org/x/text/cases.init.0()
golang.org/x/text@v0.14.0/cases/map.go:43 +0xa8 fp=0xc00019de20 sp=0xc00019dd80 pc=0x143aaa8
runtime.doInit1(0x2f02670)
runtime/proc.go:7176 +0xed fp=0xc00019df50 sp=0xc00019de20 pc=0x103f82d
runtime.doInit(...)
runtime/proc.go:7143
runtime.main()
runtime/proc.go:253 +0x327 fp=0xc00019dfe0 sp=0xc00019df50 pc=0x1031587
runtime.goexit({})
runtime/asm_amd64.s:1695 +0x1 fp=0xc00019dfe8 sp=0xc00019dfe0 pc=0x1062801
goroutine 18 gp=0xc0001841c0 m=nil [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
runtime/proc.go:402 +0xce fp=0xc000101fa8 sp=0xc000101f88 pc=0x10318ee
runtime.goparkunlock(...)
runtime/proc.go:408
runtime.forcegchelper()
runtime/proc.go:326 +0xb8 fp=0xc000101fe0 sp=0xc000101fa8 pc=0x1031778
runtime.goexit({})
runtime/asm_amd64.s:1695 +0x1 fp=0xc000101fe8 sp=0xc000101fe0 pc=0x1062801
created by runtime.init.6 in goroutine 1
runtime/proc.go:314 +0x1a
goroutine 2 gp=0xc0000fca80 m=nil [GC sweep wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
runtime/proc.go:402 +0xce fp=0xc00010ff80 sp=0xc00010ff60 pc=0x10318ee
runtime.goparkunlock(...)
runtime/proc.go:408
runtime.bgsweep(0xc0000480e0)
runtime/mgcsweep.go:278 +0x94 fp=0xc00010ffc8 sp=0xc00010ff80 pc=0x101ab14
runtime.gcenable.gowrap1()
runtime/mgc.go:203 +0x25 fp=0xc00010ffe0 sp=0xc00010ffc8 pc=0x100f405
runtime.goexit({})
runtime/asm_amd64.s:1695 +0x1 fp=0xc00010ffe8 sp=0xc00010ffe0 pc=0x1062801
created by runtime.gcenable in goroutine 1
runtime/mgc.go:203 +0x66
goroutine 3 gp=0xc0000fcc40 m=nil [GC scavenge wait]:
runtime.gopark(0xc0000480e0?, 0x2508298?, 0x1?, 0x0?, 0xc0000fcc40?)
runtime/proc.go:402 +0xce fp=0xc000111f78 sp=0xc000111f58 pc=0x10318ee
runtime.goparkunlock(...)
runtime/proc.go:408
runtime.(*scavengerState).park(0x323ec40)
runtime/mgcscavenge.go:425 +0x49 fp=0xc000111fa8 sp=0xc000111f78 pc=0x10184e9
runtime.bgscavenge(0xc0000480e0)
runtime/mgcscavenge.go:653 +0x3c fp=0xc000111fc8 sp=0xc000111fa8 pc=0x1018a7c
runtime.gcenable.gowrap2()
runtime/mgc.go:204 +0x25 fp=0xc000111fe0 sp=0xc000111fc8 pc=0x100f3a5
runtime.goexit({})
runtime/asm_amd64.s:1695 +0x1 fp=0xc000111fe8 sp=0xc000111fe0 pc=0x1062801
created by runtime.gcenable in goroutine 1
runtime/mgc.go:204 +0xa5
goroutine 4 gp=0xc0000fce00 m=nil [finalizer wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
runtime/proc.go:402 +0xce fp=0xc00010be20 sp=0xc00010be00 pc=0x10318ee
runtime.runfinq()
runtime/mfinal.go:194 +0x107 fp=0xc00010bfe0 sp=0xc00010be20 pc=0x100e487
runtime.goexit({})
runtime/asm_amd64.s:1695 +0x1 fp=0xc00010bfe8 sp=0xc00010bfe0 pc=0x1062801
created by runtime.createfing in goroutine 1
runtime/mfinal.go:164 +0x3d
I'm wondering if there is some small incorrect assumption with AMD hardware in the golang runtime code? I see this other issue, which isn't the same stack trace, but is also limited to AMD hardware: https://github.com/golang/go/issues/62440
It could be. It could also be a kernel issue. A reproducer would be very helpful. Thanks.
Go version
go1.21.4
Output of
go env
in your module/workspace:NOTE: We compile inside docker. The output below is from running
go env
within the docker container that we use. We cross-compile for linux, windows, and darwin. The workers having a problem in this case are running windows/amd64.What did you do?
We have a cli program that runs on many thousands of VMs / bare metal workers as part of our larger CI setup. Recently, we've been seeing a non-trivial number of panics on a specific set of workers. These workers are bare metal AMD Threadripper machines running Windows 10. Below is some info from DXDiag. (I can get additional information if needed).
We're seeing two types of panics:
fatal error: runtime: mcall called on m->g0 stack
I have included multiple call stacks of these panics below. NOTE: these callstacks all happen on different machines. But they only happen on the same "series" of machine, which is documented above.
All the panics seem to happen during the
init()
phase of the runtime start-up. The panics are not super reproduce-able. I'm only really seeing it due to our scale.What did you see happen?
Below are the callstacks from a number of panics across multiple machines.
Then here are some callstacks from init's that are seemingly not following the right init order:
What did you expect to see?
The program finishes the
init()
phase without panics