neondatabase / autoscaling

Postgres vertical autoscaling in k8s

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bug: `make manifests` fails with Go >1.21

sharnoff opened this issue · comments

Environment

Local development, with Go 1.22, for example.

$ go version
go version go1.22.1 linux/amd64

Steps to reproduce

  1. Clone the repository
  2. Run make manifests
  3. Profit

Expected result

make manifests should complete successfully

Actual result

It fails with a null pointer deref.

Command output
$ make manifests
mkdir -p /path/to/repo/bin
go: downloading sigs.k8s.io/controller-tools v0.10.0
go: downloading github.com/spf13/cobra v1.4.0
go: downloading github.com/gobuffalo/flect v0.2.5
go: downloading github.com/fatih/color v1.12.0
go: downloading golang.org/x/tools v0.1.12
go: downloading github.com/mattn/go-isatty v0.0.12
go: downloading github.com/mattn/go-colorable v0.1.8
go: downloading golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4
/path/to/repo/bin/controller-gen rbac:roleName=manager-role crd webhook paths="./neonvm/..." \
	output:crd:artifacts:config=neonvm/config/crd/bases \
	output:rbac:artifacts:config=neonvm/config/rbac \
	output:webhook:artifacts:config=neonvm/config/webhook
panic: runtime error: invalid memory address or nil pointer dereference [recovered]
	panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xa047cf]

goroutine 127 [running]:
go/types.(*Checker).handleBailout(0xc0001b3200, 0xc0013f7d40)
	/usr/lib/go/src/go/types/check.go:367 +0x88
panic({0xbbb960?, 0x129ace0?})
	/usr/lib/go/src/runtime/panic.go:770 +0x132
go/types.(*StdSizes).Sizeof(0x0, {0xdb0c18, 0x12a34c0})
	/usr/lib/go/src/go/types/sizes.go:228 +0x30f
go/types.(*Config).sizeof(...)
	/usr/lib/go/src/go/types/sizes.go:333
go/types.representableConst.func1({0xdb0c18?, 0x12a34c0?})
	/usr/lib/go/src/go/types/const.go:76 +0x9e
go/types.representableConst({0xdb6eb8, 0x126f798}, 0xc0001b3200, 0x12a34c0, 0xc0013f3b40)
	/usr/lib/go/src/go/types/const.go:106 +0x2c7
go/types.(*Checker).representation(0xc0001b3200, 0xc0013ee7c0, 0x12a34c0)
	/usr/lib/go/src/go/types/const.go:256 +0x65
go/types.(*Checker).representable(0xc0001b3200, 0xc0013ee7c0, 0x12a34c0)
	/usr/lib/go/src/go/types/const.go:239 +0x26
go/types.(*Checker).shift(0xc0001b3200, 0xc0013ee740, 0xc0013ee7c0, {0xdb4ce8, 0xc000d861b0}, 0x14)
	/usr/lib/go/src/go/types/expr.go:650 +0x1eb
go/types.(*Checker).binary(0xc0001b3200, 0xc0013ee740, {0xdb4ce8, 0xc000d861b0}, {0xdb51f8, 0xc000d8e020}, {0xdb51f8, 0xc000d8e040}, 0x14, 0x11ee08)
	/usr/lib/go/src/go/types/expr.go:796 +0x150
go/types.(*Checker).exprInternal(0xc0001b3200, 0x0, 0xc0013ee740, {0xdb4ce8, 0xc000d861b0}, {0x0, 0x0})
	/usr/lib/go/src/go/types/expr.go:1416 +0x206
go/types.(*Checker).rawExpr(0xc0001b3200, 0x0, 0xc0013ee740, {0xdb4ce8?, 0xc000d861b0?}, {0x0?, 0x0?}, 0x0)
	/usr/lib/go/src/go/types/expr.go:979 +0x19e
go/types.(*Checker).exprInternal(0xc0001b3200, 0x0, 0xc0013ee740, {0xdb4b98, 0xc000d8e060}, {0x0, 0x0})
	/usr/lib/go/src/go/types/expr.go:1320 +0x178
go/types.(*Checker).rawExpr(0xc0001b3200, 0x0, 0xc0013ee740, {0xdb4b98?, 0xc000d8e060?}, {0x0?, 0x0?}, 0x0)
	/usr/lib/go/src/go/types/expr.go:979 +0x19e
go/types.(*Checker).expr(0xc0001b3200, 0x0?, 0xc0013ee740, {0xdb4b98?, 0xc000d8e060?})
	/usr/lib/go/src/go/types/expr.go:1513 +0x30
go/types.(*Checker).binary(0xc0001b3200, 0xc0013ee740, {0xdb4ce8, 0xc000d861e0}, {0xdb4b98, 0xc000d8e060}, {0xdb51f8, 0xc000d8e080}, 0xd, 0x11ee0d)
	/usr/lib/go/src/go/types/expr.go:783 +0xa5
go/types.(*Checker).exprInternal(0xc0001b3200, 0x0, 0xc0013ee740, {0xdb4ce8, 0xc000d861e0}, {0x0, 0x0})
	/usr/lib/go/src/go/types/expr.go:1416 +0x206
go/types.(*Checker).rawExpr(0xc0001b3200, 0x0, 0xc0013ee740, {0xdb4ce8?, 0xc000d861e0?}, {0x0?, 0x0?}, 0x1)
	/usr/lib/go/src/go/types/expr.go:979 +0x19e
go/types.(*Checker).use1(0xc0001b3200, {0xdb4ce8, 0xc000d861e0}, 0x0)
	/usr/lib/go/src/go/types/call.go:1043 +0x1a5
go/types.(*Checker).useN(...)
	/usr/lib/go/src/go/types/call.go:1004
go/types.(*Checker).use(...)
	/usr/lib/go/src/go/types/call.go:994
go/types.(*Checker).callExpr(0xc0001b3200, 0xc0013ee680, 0xc000d88580)
	/usr/lib/go/src/go/types/call.go:196 +0x175e
go/types.(*Checker).exprInternal(0xc0001b3200, 0x0, 0xc0013ee680, {0xdb52b8, 0xc000d88580}, {0x0, 0x0})
	/usr/lib/go/src/go/types/expr.go:1374 +0xf8
go/types.(*Checker).rawExpr(0xc0001b3200, 0x0, 0xc0013ee680, {0xdb52b8?, 0xc000d88580?}, {0x0?, 0x0?}, 0x0)
	/usr/lib/go/src/go/types/expr.go:979 +0x19e
go/types.(*Checker).expr(0xc0001b3200, 0xc00033e0e0?, 0xc0013ee680, {0xdb52b8?, 0xc000d88580?})
	/usr/lib/go/src/go/types/expr.go:1513 +0x30
go/types.(*Checker).exprInternal(0xc0001b3200, 0x0, 0xc0013ee680, {0xdb4c58, 0xc000d885c0}, {0x0, 0x0})
	/usr/lib/go/src/go/types/expr.go:1190 +0x1ea5
go/types.(*Checker).rawExpr(0xc0001b3200, 0x0, 0xc0013ee680, {0xdb4c58?, 0xc000d885c0?}, {0x0?, 0x0?}, 0x0)
	/usr/lib/go/src/go/types/expr.go:979 +0x19e
go/types.(*Checker).expr(0xc0001b3200, 0x0?, 0xc0013ee680, {0xdb4c58?, 0xc000d885c0?})
	/usr/lib/go/src/go/types/expr.go:1513 +0x30
go/types.(*Checker).varDecl(0xc0001b3200, 0xc00082cae0, {0xc0007a2e20, 0x1, 0x1}, {0x0, 0x0}, {0xdb4c58, 0xc000d885c0})
	/usr/lib/go/src/go/types/decl.go:521 +0x17b
go/types.(*Checker).objDecl(0xc0001b3200, {0xdbc7e0, 0xc00082cae0}, 0x0)
	/usr/lib/go/src/go/types/decl.go:194 +0x9e5
go/types.(*Checker).packageObjects(0xc0001b3200)
	/usr/lib/go/src/go/types/resolver.go:693 +0x4dd
go/types.(*Checker).checkFiles(0xc0001b3200, {0xc00070a740, 0x7, 0x7})
	/usr/lib/go/src/go/types/check.go:408 +0x1a5
go/types.(*Checker).Files(...)
	/usr/lib/go/src/go/types/check.go:372
sigs.k8s.io/controller-tools/pkg/loader.(*loader).typeCheck(0xc00037d170, 0xc0008e1460)
	/path/to/go/pkg/mod/sigs.k8s.io/controller-tools@v0.10.0/pkg/loader/loader.go:286 +0x36a
sigs.k8s.io/controller-tools/pkg/loader.(*Package).NeedTypesInfo(0xc0008e1460)
	/path/to/go/pkg/mod/sigs.k8s.io/controller-tools@v0.10.0/pkg/loader/loader.go:99 +0x39
sigs.k8s.io/controller-tools/pkg/loader.(*TypeChecker).check(0xc000cfc5d0, 0xc0008e1460)
	/path/to/go/pkg/mod/sigs.k8s.io/controller-tools@v0.10.0/pkg/loader/refs.go:268 +0x2b7
sigs.k8s.io/controller-tools/pkg/loader.(*TypeChecker).check.func1(0x47?)
	/path/to/go/pkg/mod/sigs.k8s.io/controller-tools@v0.10.0/pkg/loader/refs.go:262 +0x53
created by sigs.k8s.io/controller-tools/pkg/loader.(*TypeChecker).check in goroutine 1
	/path/to/go/pkg/mod/sigs.k8s.io/controller-tools@v0.10.0/pkg/loader/refs.go:260 +0x1c5
make: *** [Makefile:93: manifests] Error 2

Other logs, links