Skip to content

cmd/compile: nosplit stack overflow with -gcflags "all=-N -l" -race (darwin/arm64 | Goland debug cmd) #54291

@ghostiam

Description

@ghostiam

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

$ go version
go version go1.18.5 darwin/arm64

Does this issue reproduce with the latest release?

Yes (go 1.19)

$ go version
go version go1.19 darwin/arm64

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

go env Output
$ go env
GO111MODULE=""
GOARCH="arm64"
GOBIN=""
GOCACHE="/Users/ghostiam/Library/Caches/go-build"
GOENV="/Users/ghostiam/Library/Application Support/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="arm64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/ghostiam/projects/golang/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/ghostiam/projects/golang"
GOPRIVATE=""
GOPROXY="http://localhost:8123"
GOROOT="/Users/ghostiam/projects/golang/sdk/go1.19"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/Users/ghostiam/projects/golang/sdk/go1.19/pkg/tool/darwin_arm64"
GOVCS=""
GOVERSION="go1.19"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/Users/ghostiam/Desktop/test/go.mod"
GOWORK=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch arm64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/pc/st46ghc9375gx_q1ktbvpq900000gn/T/go-build1017110940=/tmp/go-build -gno-record-gcc-switches -fno-common"

What did you do?

go build -gcflags "all=-N -l" -race -v

2 lines of code:
https://go.dev/play/p/v-LC84qDHo4

package main

import (
	"os/exec"
)

func main() {
	cmd := exec.Command("echo", "test")
	_ = cmd.Start()
}

What did you expect to see?

Successful build and debug

What did you see instead?

go 1.18.5 Output
$ go build  -gcflags "all=-N -l" -race -v
test
# test
runtime.fatalthrow: nosplit stack overflow
	792	assumed on entry to syscall.ptrace<1> (nosplit)
	664	after syscall.ptrace<1> (nosplit) uses 128
	456	after syscall.ptrace1<1> (nosplit) uses 208
	264	after syscall.syscall6<1> (nosplit) uses 192
	232	after runtime.entersyscall<1> (nosplit) uses 32
	168	after runtime.reentersyscall<1> (nosplit) uses 64
	136	after runtime.save<1> (nosplit) uses 32
	104	after runtime.badctxt<1> (nosplit) uses 32
	56	after runtime.throw<1> (nosplit) uses 48
	-8	after runtime.fatalthrow<1> (nosplit) uses 64
go 1.19 Output
$ go build  -gcflags "all=-N -l" -race -v
unicode/utf8
math/bits
internal/itoa
internal/unsafeheader
internal/goos
internal/goarch
unicode
internal/goexperiment
runtime/internal/math
runtime/internal/sys
internal/abi
sync/atomic
internal/cpu
math
runtime/internal/atomic
internal/bytealg
runtime
internal/reflectlite
internal/race
sync
internal/testlog
errors
sort
internal/oserror
path
io
strconv
syscall
bytes
strings
internal/syscall/execenv
internal/syscall/unix
time
runtime/cgo
context
io/fs
internal/poll
os
internal/godebug
path/filepath
os/exec
runtime/race
test
# test
syscall.ptrace: nosplit stack over 792 byte limit
syscall.ptrace<1>
    grows 128 bytes, calls syscall.ptrace1<1>
        grows 208 bytes, calls syscall.syscall6<1>
            grows 192 bytes, calls runtime.entersyscall<1>
                grows 32 bytes, calls runtime.reentersyscall<1>
                    grows 64 bytes, calls runtime.save<1>
                        grows 32 bytes, calls runtime.badctxt<1>
                            grows 32 bytes, calls runtime.throw<1>
                                grows 48 bytes, calls runtime.fatalthrow<1>
                                    grows 64 bytes, calls runtime.systemstack<0>
                                        grows 16 bytes, calls indirect
                                            grows 0 bytes, calls runtime.morestack<0>
                                            24 bytes over limit
                                        grows 16 bytes, calls runtime.abort<0>
                                        24 bytes over limit
                                        grows 16 bytes, calls gosave_systemstack_switch<21>
                                            grows 0 bytes, calls runtime.abort<0>
                                            24 bytes over limit
                                        grows 16 bytes, calls runtime.save_g<0>
                                        24 bytes over limit
                                        grows 16 bytes, calls indirect
                                            grows 0 bytes, calls runtime.morestack<0>
                                            24 bytes over limit
                                        grows 16 bytes, calls runtime.save_g<0>
                                        24 bytes over limit
                    grows 64 bytes, calls runtime.casgstatus<1>
                        grows 80 bytes, calls runtime.nanotime<1>
                            grows 32 bytes, calls runtime.nanotime1<0>
                                grows 48 bytes, calls runtime.libcCall<1>
                                    grows 64 bytes, calls runtime.(*guintptr).set<1>
                                    56 bytes over limit
                                    grows 64 bytes, calls runtime.asmcgocall<0>
                                        grows 16 bytes, calls gosave_systemstack_switch<21>
                                            grows 0 bytes, calls runtime.abort<0>
                                            72 bytes over limit
                                        grows 16 bytes, calls runtime.save_g<0>
                                        72 bytes over limit
                                        grows 16 bytes, calls indirect
                                            grows 0 bytes, calls runtime.morestack<0>
                                            72 bytes over limit
                                        grows 16 bytes, calls runtime.save_g<0>
                                        72 bytes over limit
                                        grows 16 bytes, calls indirect
                                            grows 0 bytes, calls runtime.morestack<0>
                                            72 bytes over limit
                        grows 80 bytes, calls runtime.nanotime<1>
                            grows 32 bytes, calls runtime.nanotime1<0>
                                grows 48 bytes, calls runtime.libcCall<1>
                                    grows 64 bytes, calls runtime.(*guintptr).set<1>
                                    56 bytes over limit
                                    grows 64 bytes, calls runtime.asmcgocall<0>
                                        grows 16 bytes, calls gosave_systemstack_switch<21>
                                            grows 0 bytes, calls runtime.abort<0>
                                            72 bytes over limit
                                        grows 16 bytes, calls runtime.save_g<0>
                                        72 bytes over limit
                                        grows 16 bytes, calls indirect
                                            grows 0 bytes, calls runtime.morestack<0>
                                            72 bytes over limit
                                        grows 16 bytes, calls runtime.save_g<0>
                                        72 bytes over limit
                                        grows 16 bytes, calls indirect
                                            grows 0 bytes, calls runtime.morestack<0>
                                            72 bytes over limit
                        grows 80 bytes, calls runtime.osyield<1>
                            grows 32 bytes, calls runtime.usleep<0>
                                grows 32 bytes, calls runtime.libcCall<1>
                                    grows 64 bytes, calls runtime.(*guintptr).set<1>
                                    40 bytes over limit
                                    grows 64 bytes, calls runtime.asmcgocall<0>
                                        grows 16 bytes, calls gosave_systemstack_switch<21>
                                            grows 0 bytes, calls runtime.abort<0>
                                            56 bytes over limit
                                        grows 16 bytes, calls runtime.save_g<0>
                                        56 bytes over limit
                                        grows 16 bytes, calls indirect
                                            grows 0 bytes, calls runtime.morestack<0>
                                            56 bytes over limit
                                        grows 16 bytes, calls runtime.save_g<0>
                                        56 bytes over limit
                                        grows 16 bytes, calls indirect
                                            grows 0 bytes, calls runtime.morestack<0>
                                            56 bytes over limit
                        grows 80 bytes, calls runtime.nanotime<1>
                            grows 32 bytes, calls runtime.nanotime1<0>
                                grows 48 bytes, calls runtime.libcCall<1>
                                    grows 64 bytes, calls runtime.(*guintptr).set<1>
                                    56 bytes over limit
                                    grows 64 bytes, calls runtime.asmcgocall<0>
                                        grows 16 bytes, calls gosave_systemstack_switch<21>
                                            grows 0 bytes, calls runtime.abort<0>
                                            72 bytes over limit
                                        grows 16 bytes, calls runtime.save_g<0>
                                        72 bytes over limit
                                        grows 16 bytes, calls indirect
                                            grows 0 bytes, calls runtime.morestack<0>
                                            72 bytes over limit
                                        grows 16 bytes, calls runtime.save_g<0>
                                        72 bytes over limit
                                        grows 16 bytes, calls indirect
                                            grows 0 bytes, calls runtime.morestack<0>
                                            72 bytes over limit
                        grows 80 bytes, calls runtime.nanotime<1>
                            grows 32 bytes, calls runtime.nanotime1<0>
                                grows 48 bytes, calls runtime.libcCall<1>
                                    grows 64 bytes, calls runtime.(*guintptr).set<1>
                                    56 bytes over limit
                                    grows 64 bytes, calls runtime.asmcgocall<0>
                                        grows 16 bytes, calls gosave_systemstack_switch<21>
                                            grows 0 bytes, calls runtime.abort<0>
                                            72 bytes over limit
                                        grows 16 bytes, calls runtime.save_g<0>
                                        72 bytes over limit
                                        grows 16 bytes, calls indirect
                                            grows 0 bytes, calls runtime.morestack<0>
                                            72 bytes over limit
                                        grows 16 bytes, calls runtime.save_g<0>
                                        72 bytes over limit
                                        grows 16 bytes, calls indirect
                                            grows 0 bytes, calls runtime.morestack<0>
                                            72 bytes over limit
                        grows 80 bytes, calls runtime.nanotime<1>
                            grows 32 bytes, calls runtime.nanotime1<0>
                                grows 48 bytes, calls runtime.libcCall<1>
                                    grows 64 bytes, calls runtime.(*guintptr).set<1>
                                    56 bytes over limit
                                    grows 64 bytes, calls runtime.asmcgocall<0>
                                        grows 16 bytes, calls gosave_systemstack_switch<21>
                                            grows 0 bytes, calls runtime.abort<0>
                                            72 bytes over limit
                                        grows 16 bytes, calls runtime.save_g<0>
                                        72 bytes over limit
                                        grows 16 bytes, calls indirect
                                            grows 0 bytes, calls runtime.morestack<0>
                                            72 bytes over limit
                                        grows 16 bytes, calls runtime.save_g<0>
                                        72 bytes over limit
                                        grows 16 bytes, calls indirect
                                            grows 0 bytes, calls runtime.morestack<0>
                                            72 bytes over limit
                        grows 80 bytes, calls runtime.throw<1>
                            grows 48 bytes, calls runtime.fatalthrow<1>
                                grows 64 bytes, calls runtime.systemstack<0>
                                    grows 16 bytes, calls indirect
                                        grows 0 bytes, calls runtime.morestack<0>
                                        40 bytes over limit
                                    grows 16 bytes, calls runtime.abort<0>
                                    40 bytes over limit
                                    grows 16 bytes, calls gosave_systemstack_switch<21>
                                        grows 0 bytes, calls runtime.abort<0>
                                        40 bytes over limit
                                    grows 16 bytes, calls runtime.save_g<0>
                                    40 bytes over limit
                                    grows 16 bytes, calls indirect
                                        grows 0 bytes, calls runtime.morestack<0>
                                        40 bytes over limit
                                    grows 16 bytes, calls runtime.save_g<0>
                                    40 bytes over limit
                    grows 64 bytes, calls runtime.save<1>
                        grows 32 bytes, calls runtime.badctxt<1>
                            grows 32 bytes, calls runtime.throw<1>
                                grows 48 bytes, calls runtime.fatalthrow<1>
                                    grows 64 bytes, calls runtime.systemstack<0>
                                        grows 16 bytes, calls indirect
                                            grows 0 bytes, calls runtime.morestack<0>
                                            24 bytes over limit
                                        grows 16 bytes, calls runtime.abort<0>
                                        24 bytes over limit
                                        grows 16 bytes, calls gosave_systemstack_switch<21>
                                            grows 0 bytes, calls runtime.abort<0>
                                            24 bytes over limit
                                        grows 16 bytes, calls runtime.save_g<0>
                                        24 bytes over limit
                                        grows 16 bytes, calls indirect
                                            grows 0 bytes, calls runtime.morestack<0>
                                            24 bytes over limit
                                        grows 16 bytes, calls runtime.save_g<0>
                                        24 bytes over limit
                    grows 64 bytes, calls runtime.save<1>
                        grows 32 bytes, calls runtime.badctxt<1>
                            grows 32 bytes, calls runtime.throw<1>
                                grows 48 bytes, calls runtime.fatalthrow<1>
                                    grows 64 bytes, calls runtime.systemstack<0>
                                        grows 16 bytes, calls indirect
                                            grows 0 bytes, calls runtime.morestack<0>
                                            24 bytes over limit
                                        grows 16 bytes, calls runtime.abort<0>
                                        24 bytes over limit
                                        grows 16 bytes, calls gosave_systemstack_switch<21>
                                            grows 0 bytes, calls runtime.abort<0>
                                            24 bytes over limit
                                        grows 16 bytes, calls runtime.save_g<0>
                                        24 bytes over limit
                                        grows 16 bytes, calls indirect
                                            grows 0 bytes, calls runtime.morestack<0>
                                            24 bytes over limit
                                        grows 16 bytes, calls runtime.save_g<0>
                                        24 bytes over limit
                    grows 64 bytes, calls runtime.save<1>
                        grows 32 bytes, calls runtime.badctxt<1>
                            grows 32 bytes, calls runtime.throw<1>
                                grows 48 bytes, calls runtime.fatalthrow<1>
                                    grows 64 bytes, calls runtime.systemstack<0>
                                        grows 16 bytes, calls indirect
                                            grows 0 bytes, calls runtime.morestack<0>
                                            24 bytes over limit
                                        grows 16 bytes, calls runtime.abort<0>
                                        24 bytes over limit
                                        grows 16 bytes, calls gosave_systemstack_switch<21>
                                            grows 0 bytes, calls runtime.abort<0>
                                            24 bytes over limit
                                        grows 16 bytes, calls runtime.save_g<0>
                                        24 bytes over limit
                                        grows 16 bytes, calls indirect
                                            grows 0 bytes, calls runtime.morestack<0>
                                            24 bytes over limit
                                        grows 16 bytes, calls runtime.save_g<0>
                                        24 bytes over limit
                    grows 64 bytes, calls runtime.save<1>
                        grows 32 bytes, calls runtime.badctxt<1>
                            grows 32 bytes, calls runtime.throw<1>
                                grows 48 bytes, calls runtime.fatalthrow<1>
                                    grows 64 bytes, calls runtime.systemstack<0>
                                        grows 16 bytes, calls indirect
                                            grows 0 bytes, calls runtime.morestack<0>
                                            24 bytes over limit
                                        grows 16 bytes, calls runtime.abort<0>
                                        24 bytes over limit
                                        grows 16 bytes, calls gosave_systemstack_switch<21>
                                            grows 0 bytes, calls runtime.abort<0>
                                            24 bytes over limit
                                        grows 16 bytes, calls runtime.save_g<0>
                                        24 bytes over limit
                                        grows 16 bytes, calls indirect
                                            grows 0 bytes, calls runtime.morestack<0>
                                            24 bytes over limit
                                        grows 16 bytes, calls runtime.save_g<0>
                                        24 bytes over limit
            grows 192 bytes, calls runtime.exitsyscall<1>
                grows 64 bytes, calls runtime.exitsyscallfast<1>
                    grows 80 bytes, calls runtime.wirep<1>
                        grows 64 bytes, calls runtime.throw<1>
                            grows 48 bytes, calls runtime.systemstack<0>
                                grows 16 bytes, calls indirect
                                    grows 0 bytes, calls runtime.morestack<0>
                                    8 bytes over limit
                                grows 16 bytes, calls runtime.abort<0>
                                8 bytes over limit
                                grows 16 bytes, calls gosave_systemstack_switch<21>
                                    grows 0 bytes, calls runtime.abort<0>
                                    8 bytes over limit
                                grows 16 bytes, calls runtime.save_g<0>
                                8 bytes over limit
                                grows 16 bytes, calls indirect
                                    grows 0 bytes, calls runtime.morestack<0>
                                    8 bytes over limit
                                grows 16 bytes, calls runtime.save_g<0>
                                8 bytes over limit
                            grows 48 bytes, calls runtime.fatalthrow<1>
                                grows 64 bytes, calls runtime.systemstack<0>
                                    grows 16 bytes, calls indirect
                                        grows 0 bytes, calls runtime.morestack<0>
                                        72 bytes over limit
                                    grows 16 bytes, calls runtime.abort<0>
                                    72 bytes over limit
                                    grows 16 bytes, calls gosave_systemstack_switch<21>
                                        grows 0 bytes, calls runtime.abort<0>
                                        72 bytes over limit
                                    grows 16 bytes, calls runtime.save_g<0>
                                    72 bytes over limit
                                    grows 16 bytes, calls indirect
                                        grows 0 bytes, calls runtime.morestack<0>
                                        72 bytes over limit
                                    grows 16 bytes, calls runtime.save_g<0>
                                    72 bytes over limit
                        grows 64 bytes, calls runtime.throw<1>
                            grows 48 bytes, calls runtime.systemstack<0>
                                grows 16 bytes, calls indirect
                                    grows 0 bytes, calls runtime.morestack<0>
                                    8 bytes over limit
                                grows 16 bytes, calls runtime.abort<0>
                                8 bytes over limit
                                grows 16 bytes, calls gosave_systemstack_switch<21>
                                    grows 0 bytes, calls runtime.abort<0>
                                    8 bytes over limit
                                grows 16 bytes, calls runtime.save_g<0>
                                8 bytes over limit
                                grows 16 bytes, calls indirect
                                    grows 0 bytes, calls runtime.morestack<0>
                                    8 bytes over limit
                                grows 16 bytes, calls runtime.save_g<0>
                                8 bytes over limit
                            grows 48 bytes, calls runtime.fatalthrow<1>
                                grows 64 bytes, calls runtime.systemstack<0>
                                    grows 16 bytes, calls indirect
                                        grows 0 bytes, calls runtime.morestack<0>
                                        72 bytes over limit
                                    grows 16 bytes, calls runtime.abort<0>
                                    72 bytes over limit
                                    grows 16 bytes, calls gosave_systemstack_switch<21>
                                        grows 0 bytes, calls runtime.abort<0>
                                        72 bytes over limit
                                    grows 16 bytes, calls runtime.save_g<0>
                                    72 bytes over limit
                                    grows 16 bytes, calls indirect
                                        grows 0 bytes, calls runtime.morestack<0>
                                        72 bytes over limit
                                    grows 16 bytes, calls runtime.save_g<0>
                                    72 bytes over limit
                grows 64 bytes, calls runtime.casgstatus<1>
                    grows 80 bytes, calls runtime.nanotime<1>
                        grows 32 bytes, calls runtime.nanotime1<0>
                            grows 48 bytes, calls runtime.libcCall<1>
                                grows 64 bytes, calls runtime.(*guintptr).set<1>
                                24 bytes over limit
                                grows 64 bytes, calls runtime.asmcgocall<0>
                                    grows 16 bytes, calls gosave_systemstack_switch<21>
                                        grows 0 bytes, calls runtime.abort<0>
                                        40 bytes over limit
                                    grows 16 bytes, calls runtime.save_g<0>
                                    40 bytes over limit
                                    grows 16 bytes, calls indirect
                                        grows 0 bytes, calls runtime.morestack<0>
                                        40 bytes over limit
                                    grows 16 bytes, calls runtime.save_g<0>
                                    40 bytes over limit
                                    grows 16 bytes, calls indirect
                                        grows 0 bytes, calls runtime.morestack<0>
                                        40 bytes over limit
                    grows 80 bytes, calls runtime.nanotime<1>
                        grows 32 bytes, calls runtime.nanotime1<0>
                            grows 48 bytes, calls runtime.libcCall<1>
                                grows 64 bytes, calls runtime.(*guintptr).set<1>
                                24 bytes over limit
                                grows 64 bytes, calls runtime.asmcgocall<0>
                                    grows 16 bytes, calls gosave_systemstack_switch<21>
                                        grows 0 bytes, calls runtime.abort<0>
                                        40 bytes over limit
                                    grows 16 bytes, calls runtime.save_g<0>
                                    40 bytes over limit
                                    grows 16 bytes, calls indirect
                                        grows 0 bytes, calls runtime.morestack<0>
                                        40 bytes over limit
                                    grows 16 bytes, calls runtime.save_g<0>
                                    40 bytes over limit
                                    grows 16 bytes, calls indirect
                                        grows 0 bytes, calls runtime.morestack<0>
                                        40 bytes over limit
                    grows 80 bytes, calls runtime.osyield<1>
                        grows 32 bytes, calls runtime.usleep<0>
                            grows 32 bytes, calls runtime.libcCall<1>
                                grows 64 bytes, calls runtime.(*guintptr).set<1>
                                8 bytes over limit
                                grows 64 bytes, calls runtime.asmcgocall<0>
                                    grows 16 bytes, calls gosave_systemstack_switch<21>
                                        grows 0 bytes, calls runtime.abort<0>
                                        24 bytes over limit
                                    grows 16 bytes, calls runtime.save_g<0>
                                    24 bytes over limit
                                    grows 16 bytes, calls indirect
                                        grows 0 bytes, calls runtime.morestack<0>
                                        24 bytes over limit
                                    grows 16 bytes, calls runtime.save_g<0>
                                    24 bytes over limit
                                    grows 16 bytes, calls indirect
                                        grows 0 bytes, calls runtime.morestack<0>
                                        24 bytes over limit
                    grows 80 bytes, calls runtime.nanotime<1>
                        grows 32 bytes, calls runtime.nanotime1<0>
                            grows 48 bytes, calls runtime.libcCall<1>
                                grows 64 bytes, calls runtime.(*guintptr).set<1>
                                24 bytes over limit
                                grows 64 bytes, calls runtime.asmcgocall<0>
                                    grows 16 bytes, calls gosave_systemstack_switch<21>
                                        grows 0 bytes, calls runtime.abort<0>
                                        40 bytes over limit
                                    grows 16 bytes, calls runtime.save_g<0>
                                    40 bytes over limit
                                    grows 16 bytes, calls indirect
                                        grows 0 bytes, calls runtime.morestack<0>
                                        40 bytes over limit
                                    grows 16 bytes, calls runtime.save_g<0>
                                    40 bytes over limit
                                    grows 16 bytes, calls indirect
                                        grows 0 bytes, calls runtime.morestack<0>
                                        40 bytes over limit
                    grows 80 bytes, calls runtime.nanotime<1>
                        grows 32 bytes, calls runtime.nanotime1<0>
                            grows 48 bytes, calls runtime.libcCall<1>
                                grows 64 bytes, calls runtime.(*guintptr).set<1>
                                24 bytes over limit
                                grows 64 bytes, calls runtime.asmcgocall<0>
                                    grows 16 bytes, calls gosave_systemstack_switch<21>
                                        grows 0 bytes, calls runtime.abort<0>
                                        40 bytes over limit
                                    grows 16 bytes, calls runtime.save_g<0>
                                    40 bytes over limit
                                    grows 16 bytes, calls indirect
                                        grows 0 bytes, calls runtime.morestack<0>
                                        40 bytes over limit
                                    grows 16 bytes, calls runtime.save_g<0>
                                    40 bytes over limit
                                    grows 16 bytes, calls indirect
                                        grows 0 bytes, calls runtime.morestack<0>
                                        40 bytes over limit
                    grows 80 bytes, calls runtime.nanotime<1>
                        grows 32 bytes, calls runtime.nanotime1<0>
                            grows 48 bytes, calls runtime.libcCall<1>
                                grows 64 bytes, calls runtime.(*guintptr).set<1>
                                24 bytes over limit
                                grows 64 bytes, calls runtime.asmcgocall<0>
                                    grows 16 bytes, calls gosave_systemstack_switch<21>
                                        grows 0 bytes, calls runtime.abort<0>
                                        40 bytes over limit
                                    grows 16 bytes, calls runtime.save_g<0>
                                    40 bytes over limit
                                    grows 16 bytes, calls indirect
                                        grows 0 bytes, calls runtime.morestack<0>
                                        40 bytes over limit
                                    grows 16 bytes, calls runtime.save_g<0>
                                    40 bytes over limit
                                    grows 16 bytes, calls indirect
                                        grows 0 bytes, calls runtime.morestack<0>
                                        40 bytes over limit
                    grows 80 bytes, calls runtime.throw<1>
                        grows 48 bytes, calls runtime.fatalthrow<1>
                            grows 64 bytes, calls runtime.systemstack<0>
                                grows 16 bytes, calls indirect
                                    grows 0 bytes, calls runtime.morestack<0>
                                    8 bytes over limit
                                grows 16 bytes, calls runtime.abort<0>
                                8 bytes over limit
                                grows 16 bytes, calls gosave_systemstack_switch<21>
                                    grows 0 bytes, calls runtime.abort<0>
                                    8 bytes over limit
                                grows 16 bytes, calls runtime.save_g<0>
                                8 bytes over limit
                                grows 16 bytes, calls indirect
                                    grows 0 bytes, calls runtime.morestack<0>
                                    8 bytes over limit
                                grows 16 bytes, calls runtime.save_g<0>
                                8 bytes over limit

Without -race everything compiles fine.

Metadata

Metadata

Assignees

Labels

FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.compiler/runtimeIssues related to the Go compiler and/or runtime.

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions