Go version
go version go1.22.3 linux/amd64
Output of go env in your module/workspace:
GO111MODULE='on'
GOARCH='amd64'
GOBIN=''
GOCACHE='/root/.cache/go-build'
GOENV='/root/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOMODCACHE='/root/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/root/go'
GOPRIVATE=''
GOROOT='/root/go'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/root/go/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.22.3'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='gcc'
CXX='g++'
CGO_ENABLED='1'
GOMOD='/root/code/test/go.mod'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build1081386337=/tmp/go-build -gno-record-gcc-switches'
What did you do?
I have a project that uses ClickHouse, and it compiles successfully. However, when the pprof samples collected online service are placed in the main package of default.pgo, the compilation fails.
I apologize for not being able to provide the source code directly, but here are the pprof sample file default.pgo and the code main.go that can reproduce the compilation error.
ls
default.pgo go.mod go.sum main.go
// main.go
// don't need to run
package main
import (
"context"
_ "net/http/pprof"
"github.com/ClickHouse/clickhouse-go/v2"
)
func main() {
cfg, err := clickhouse.ParseDSN("clickhouse://user:password@127.0.0.1:19000/default")
if err != nil {
panic(err)
}
conn, err := clickhouse.Open(cfg)
if err != nil {
panic(err)
}
defer conn.Close()
b, err := conn.PrepareBatch(
context.Background(),
"INSERT INTO some_table (x) VALUES (?)",
)
if err != nil {
panic(err)
}
b.Append(1)
b.Send()
}
// go.mod
module test
go 1.22.3
require (
github.com/ClickHouse/ch-go v0.61.5 // indirect
github.com/ClickHouse/clickhouse-go/v2 v2.25.0
)
require (
github.com/andybalholm/brotli v1.1.0 // indirect
github.com/go-faster/city v1.0.1 // indirect
github.com/go-faster/errors v0.7.1 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/klauspost/compress v1.17.7 // indirect
github.com/kr/text v0.2.0 // indirect
github.com/paulmach/orb v0.11.1 // indirect
github.com/pierrec/lz4/v4 v4.1.21 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/segmentio/asm v1.2.0 // indirect
github.com/shopspring/decimal v1.4.0 // indirect
go.opentelemetry.io/otel v1.26.0 // indirect
go.opentelemetry.io/otel/trace v1.26.0 // indirect
golang.org/x/sys v0.18.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
What did you see happen?
go build
# github.com/ClickHouse/clickhouse-go/v2/ext
/root/go/pkg/mod/github.com/!click!house/ch-go@v0.61.5/proto/col_nullable.go:20:6: internal compiler error: panic: interface conversion: types.Object is nil, not *ir.Name
Please file a bug report including a short program that triggers the error.
https://go.dev/issue/new
When the PGO file is removed, i.e., when PGO is disabled, it compiles successfully.
The PGO file comes from my online service, please rename the file profile.pb.gz to default.pgo.
profile.pb.gz
What did you expect to see?
Build pass when enable PGO
Go version
go version go1.22.3 linux/amd64
Output of
go envin your module/workspace:What did you do?
I have a project that uses ClickHouse, and it compiles successfully. However, when the pprof samples collected online service are placed in the main package of default.pgo, the compilation fails.
I apologize for not being able to provide the source code directly, but here are the pprof sample file
default.pgoand the codemain.gothat can reproduce the compilation error.What did you see happen?
When the PGO file is removed, i.e., when PGO is disabled, it compiles successfully.
The PGO file comes from my online service, please rename the file profile.pb.gz to default.pgo.
profile.pb.gz
What did you expect to see?
Build pass when enable PGO