On Mon, 17 Feb 2025 17:35:20 +0100 Lucas Nussbaum <lu...@debian.org>
wrote:> During a rebuild of all packages in sid, your package failed to
build
on amd64.
Relevant part (hopefully):
> === RUN TestCustomDef
> --- FAIL: TestCustomDef (2.61s)
> panic: can't find import for sync [recovered]
> panic: can't find import for sync
> [...]
> FAIL k8s.io/kube-openapi/pkg/generators 3.213s
> === RUN TestListTypeMissing
> --- PASS: TestListTypeMissing (0.00s)
After investigation, this panic also occurs from an upstream checkout:
$ git checkout ab13479
$ go test ./pkg/generators/
E0313 16:22:11.669135 3181592 openapi.go:322] Error when generating:
StringToArray, StringToArray map[string]map[string]map[int]string
E0313 16:22:11.669232 3181592 openapi.go:322] Error when generating:
StringToArray, StringToArray map[int]string
E0313 16:22:11.669297 3181592 openapi.go:322] Error when generating:
Int, Int int
E0313 16:22:11.669358 3181592 openapi.go:322] Error when generating:
Struct, Struct struct{foo int}
E0313 16:22:11.669424 3181592 openapi.go:322] Error when generating:
List, List []base/foo.Item
E0313 16:22:11.669487 3181592 openapi.go:322] Error when generating:
Map, Map map[string]base/foo.Item
--- FAIL: TestCustomDef (3.04s)
panic: can't find import for sync [recovered]
panic: can't find import for sync
goroutine 69 [running]:
testing.tRunner.func1.2({0xb396c0, 0xc00baaf020})
/usr/lib/go-1.24/src/testing/testing.go:1734 +0x21c
testing.tRunner.func1()
/usr/lib/go-1.24/src/testing/testing.go:1737 +0x35e
panic({0xb396c0?, 0xc00baaf020?})
/usr/lib/go-1.24/src/runtime/panic.go:787 +0x132
k8s.io/gengo/generator.golangTrackerLocalName({0xd7ce20, 0xc0018c7aa0},
{{0xc00b3aaa40, 0x4}, {0xc00b90839d, 0x3}, {0x0, 0x0}})
/home/nicolas/go/pkg/mod/k8s.io/gengo@v0.0.0-20230829151522-9cce18d56c01/generator/import_tracker.go:88
+0x2b4
k8s.io/gengo/generator.NewImportTrackerForPackage.func2({{0xc00b3aaa40,
0x4}, {0xc00b90839d, 0x3}, {0x0, 0x0}})
/home/nicolas/go/pkg/mod/k8s.io/gengo@v0.0.0-20230829151522-9cce18d56c01/generator/import_tracker.go:48
+0x58
k8s.io/gengo/namer.(*DefaultImportTracker).AddSymbol(0xc0018c7aa0,
{{0xc00b3aaa40, 0x4}, {0xc00b90839d, 0x3}, {0x0, 0x0}})
/home/nicolas/go/pkg/mod/k8s.io/gengo@v0.0.0-20230829151522-9cce18d56c01/namer/import_tracker.go:74
+0xe9
k8s.io/gengo/namer.(*DefaultImportTracker).AddType(0xc0018c7aa0,
0xc00b9343c0)
/home/nicolas/go/pkg/mod/k8s.io/gengo@v0.0.0-20230829151522-9cce18d56c01/namer/import_tracker.go:94
+0x145
k8s.io/gengo/namer.(*rawNamer).Name(0xc0019596e0, 0xc00b9343c0)
/home/nicolas/go/pkg/mod/k8s.io/gengo@v0.0.0-20230829151522-9cce18d56c01/namer/namer.go:328
+0x4bb
k8s.io/gengo/namer.tList.Less({{0xd74920, 0xc0019596e0}, {0xc00b404808,
0x655, 0x8ff}}, 0xc00ba95dd0?, 0x0)
/home/nicolas/go/pkg/mod/k8s.io/gengo@v0.0.0-20230829151522-9cce18d56c01/namer/order.go:71
+0x4e
sort.partition({0xd7a820, 0xc00ba95dd0}, 0x0, 0x655, 0x40f725?)
/usr/lib/go-1.24/src/sort/zsortinterface.go:154 +0x175
sort.pdqsort({0xd7a820, 0xc00ba95dd0}, 0xbe3b80?, 0x41be01?, 0xc00ba95dd0?)
/usr/lib/go-1.24/src/sort/zsortinterface.go:114 +0x225
sort.Sort({0xd7a820, 0xc00ba95dd0})
/usr/lib/go-1.24/src/sort/sort.go:54 +0x54
k8s.io/gengo/namer.(*Orderer).OrderUniverse(0xc001993450?, 0xc5f5ba?)
/home/nicolas/go/pkg/mod/k8s.io/gengo@v0.0.0-20230829151522-9cce18d56c01/namer/order.go:50
+0x1d4
k8s.io/kube-openapi/pkg/generators.construct(0xc000103a40, 0xc0000c3cd0,
{0xd74920, 0xc0019596e0})
/tmp/kube-openapi/pkg/generators/openapi_test.go:47 +0x205
k8s.io/kube-openapi/pkg/generators.testOpenAPITypeWriter(0xc000103a40,
{0xc965be, 0x138})
/tmp/kube-openapi/pkg/generators/openapi_test.go:68 +0x32c
k8s.io/kube-openapi/pkg/generators.TestCustomDef(0xc000103a40)
/tmp/kube-openapi/pkg/generators/openapi_test.go:987 +0x2b
testing.tRunner(0xc000103a40, 0xca3268)
/usr/lib/go-1.24/src/testing/testing.go:1792 +0xf4
created by testing.(*T).Run in goroutine 1
/usr/lib/go-1.24/src/testing/testing.go:1851 +0x413
FAIL k8s.io/kube-openapi/pkg/generators 3.217s
FAIL
It seems that it comes in fact from [gengo], which has been bumped to v2
at some point. The latest upstream version of kube-openapi does not
exhibit such a panic, so we probably will have to import newer versions
of both gengo and kube-openapi. I'll see what I can do.
[gengo]: https://github.com/kubernetes/gengo
--
Nicolas Peugnet