Skip to content

GOEXPERIMENT=greenteagc cause panic with GOTOOLCHAIN=go1.25.0 (without installing go1.25.0) #75080

@ukai

Description

@ukai

Go version

go version go1.24.6 linux/amd64

Output of go env in your module/workspace:

AR='ar'                                                                         
CC='gcc'          
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'                                                           
CGO_ENABLED='1'                                                                 
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g' 
CXX='g++'   
GCCGO='gccgo'                           
GO111MODULE=''
GOAMD64='v1'                                                                    
GOARCH='amd64'                                                                 
GOAUTH='netrc'  
GOBIN=''                                
GOCACHE='/usr/local/google/home/ukai/.cache/go-build'
GOCACHEPROG=''                                                                  
GODEBUG='' 
GOENV='/usr/local/google/home/ukai/.config/go/env'
GOEXE=''                                                                        
GOEXPERIMENT=''                                                                 
GOFIPS140='off'
GOFLAGS=''         
GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build395653373=/tmp/go-build -gno-record-gcc-switches'
GOHOSTARCH='amd64'                                                              
GOHOSTOS='linux'
GOINSECURE=''
GOMOD='/usr/local/google/home/ukai/src/infra/infra/go/src/infra/go.mod'
GOMODCACHE='/usr/local/google/home/ukai/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/usr/local/google/home/ukai/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/usr/local/google/home/ukai/go/pkg/mod/golang.org/[email protected]'
GOSUMDB='sum.golang.org'
GOTELEMETRY='local'
GOTELEMETRYDIR='/usr/local/google/home/ukai/.config/go/telemetry'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/usr/local/google/home/ukai/go/pkg/mod/golang.org/[email protected]/pkg/tool/linux_amd64' 
GOVCS=''
GOVERSION='go1.24.6' 
GOWORK=''
PKG_CONFIG='pkg-config'

What did you do?

Try greenteagc (#73581) by

 % GOTOOLCHAIN=go1.25.0 GOEXPERIMENT=greenteagc go install ./...              

What did you see happen?

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x3 pc=0x81a081]          
                                        
goroutine 1 [running]:                                                          
cmd/go/internal/fips140.Init()                                                  
        cmd/go/internal/fips140/fips140.go:117 +0x101                           
cmd/go/internal/modload.Init()                                                  
        cmd/go/internal/modload/init.go:419 +0x33                               
cmd/go/internal/toolchain.Exec({0xc00002a0e4, 0x8})                             
        cmd/go/internal/toolchain/select.go:356 +0x3fc                          
cmd/go/internal/toolchain.Select()                                              
        cmd/go/internal/toolchain/select.go:284 +0x11a5        
main.main()                                                                             
         cmd/go/main.go:107 +0x4f  

What did you expect to see?

no panic.

note that after install go1.25.0, no panic.

 % go install golang.org/dl/go1.25.0@latest                                     
go: downloading golang.org/dl v0.0.0-20250812204734-236a62c85c37   
% go1.25.0 download                                                            
Downloaded   0.0% (   16384 / 59659213 bytes) ...                               
Downloaded 100.0% (59659213 / 59659213 bytes)
Unpacking /usr/local/google/home/ukai/sdk/go1.25.0/go1.25.0.linux-amd64.tar.gz .
..                                                                              
Success. You may now run 'go1.25.0' 
% GOTOOLCHAIN=go1.25.0 GOEXPERIMENT=greenteagc go install ./...
%

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugReportIssues describing a possible bug in the Go implementation.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions