E0409 20:15:05.766068 1 runtime.go:59] "msg"="Observed a panic" "error"=null "controller"="statefulset-controller" "name"="ss" "namespace"="e2e-tests-statefulset-l9v54" "object"={"name":"ss","namespace":"e2e-tests-statefulset-l9v54"} "panic"="1.19 is not in dotted-tri format" "panicGoValue"="&errors.errorString{s:\"1.19 is not in dotted-tri format\"}" "reconcileID"="0e4fd951-428b-4f30-95a5-c25695bba5c3" "stacktrace"="goroutine 1440 [running]:\nk8s.io/apimachinery/pkg/util/runtime.logPanic({0x3207ca0, 0xc003f139b0}, {0x2834560, 0xc001015dd0})\n\t/go/pkg/mod/k8s.io/apimachinery@v0.32.10/pkg/util/runtime/runtime.go:107 +0xbc\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Reconcile.func1()\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.20.2/pkg/internal/controller/controller.go:107 +0x112\npanic({0x2834560?, 0xc001015dd0?})\n\t/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.23.8.linux-amd64/src/runtime/panic.go:791 +0x132\nk8s.io/apimachinery/pkg/util/runtime.handleCrash({0x3207788, 0x4c26240}, {0x2834560, 0xc001015dd0}, {0x4c26240, 0x0, 0x43b565?})\n\t/go/pkg/mod/k8s.io/apimachinery@v0.32.10/pkg/util/runtime/runtime.go:89 +0xee\nk8s.io/apimachinery/pkg/util/runtime.HandleCrash({0x0, 0x0, 0xc002694e00?})\n\t/go/pkg/mod/k8s.io/apimachinery@v0.32.10/pkg/util/runtime/runtime.go:59 +0x108\npanic({0x2834560?, 0xc001015dd0?})\n\t/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.23.8.linux-amd64/src/runtime/panic.go:791 +0x132\ngithub.com/coreos/go-semver/semver.Must(...)\n\t/go/pkg/mod/github.com/coreos/go-semver@v0.3.1/semver/semver.go:65\ngithub.com/coreos/go-semver/semver.New({0xc004283ac0?, 0x7?})\n\t/go/pkg/mod/github.com/coreos/go-semver@v0.3.1/semver/semver.go:49 +0x34\ngithub.com/openkruise/kruise/pkg/client.ShouldUpdateResourceByResize()\n\t/workspace/pkg/client/registry.go:58 +0xad\ngithub.com/openkruise/kruise/pkg/util/inplaceupdate.defaultPatchUpdateSpecToPod(0xc003ba5208, 0xc001c61b60, 0xc0002f5ab0)\n\t/workspace/pkg/util/inplaceupdate/inplace_update_defaults.go:237 +0x17bd\ngithub.com/openkruise/kruise/pkg/util/inplaceupdate.(*realControl).finishGracePeriod.func1()\n\t/workspace/pkg/util/inplaceupdate/inplace_update.go:231 +0x1ef\nk8s.io/client-go/util/retry.OnError.func1()\n\t/go/pkg/mod/k8s.io/client-go@v0.32.10/util/retry/util.go:51 +0x30\nk8s.io/apimachinery/pkg/util/wait.runConditionWithCrashProtection(0x68?)\n\t/go/pkg/mod/k8s.io/apimachinery@v0.32.10/pkg/util/wait/wait.go:145 +0x3e\nk8s.io/apimachinery/pkg/util/wait.ExponentialBackoff({0x989680, 0x4014000000000000, 0x3fb999999999999a, 0x4, 0x0}, 0xc0031e2b58)\n\t/go/pkg/mod/k8s.io/apimachinery@v0.32.10/pkg/util/wait/backoff.go:461 +0x5a\nk8s.io/client-go/util/retry.OnError({0x989680, 0x4014000000000000, 0x3fb999999999999a, 0x4, 0x0}, 0x0?, 0xc0031e2c58?)\n\t/go/pkg/mod/k8s.io/client-go@v0.32.10/util/retry/util.go:50 +0x96\nk8s.io/client-go/util/retry.RetryOnConflict(...)\n\t/go/pkg/mod/k8s.io/client-go@v0.32.10/util/retry/util.go:104\ngithub.com/openkruise/kruise/pkg/util/inplaceupdate.(*realControl).finishGracePeriod(0x3244988?, 0xc001709208?, 0xc00341b440?)\n\t/workspace/pkg/util/inplaceupdate/inplace_update.go:196 +0x9e\ngithub.com/openkruise/kruise/pkg/util/inplaceupdate.(*realControl).Refresh(0xc000b03e40, 0xc001709208, 0x26d4d40?)\n\t/workspace/pkg/util/inplaceupdate/inplace_update.go:126 +0x169\ngithub.com/openkruise/kruise/pkg/controller/statefulset.(*defaultStatefulSetControl).refreshPodState(0xc00101bbc0, 0xc003a77088, 0xc001709208, {0xc00396d6c0, 0xc})\n\t/workspace/pkg/controller/statefulset/stateful_set_control.go:779 +0x17f\ngithub.com/openkruise/kruise/pkg/controller/statefulset.(*defaultStatefulSetControl).processReplica(0xc00101bbc0, {0x3207ca0, 0xc003f139b0}, 0xc003a77088, 0xc003a78688, 0x1, {0xc002d90648, 0x3, 0xc0031e34b0?}, 0x2, ...)\n\t/workspace/pkg/controller/statefulset/stateful_set_control.go:1174 +0x9b5\ngithub.com/openkruise/kruise/pkg/controller/statefulset.(*defaultStatefulSetControl).updateStatefulSet.func1(0x6?)\n\t/workspace/pkg/controller/statefulset/stateful_set_control.go:476 +0x51\ngithub.com/openkruise/kruise/pkg/controller/statefulset.runForAllWithBreak({0xc002d90648?, 0x3, 0x6?}, 0xc0031e36b0, 0x80?)\n\t/workspace/pkg/controller/statefulset/stateful_set_control.go:1287 +0x9e\ngithub.com/openkruise/kruise/pkg/controller/statefulset.(*defaultStatefulSetControl).updateStatefulSet(0xc00101bbc0, {0x3207ca0, 0xc003f139b0}, 0xc003a77088, 0xc004081cc0, 0xc0040ee8c0, 0x0, {0xc002c3a220, 0x3, 0x4}, ...)\n\t/workspace/pkg/controller/statefulset/stateful_set_control.go:478 +0xe4d\ngithub.com/openkruise/kruise/pkg/controller/statefulset.(*defaultStatefulSetControl).performUpdate(0xc00101bbc0, {0x3207ca0, 0xc003f139b0}, 0xc003a77088, {0xc002c3a220, 0x3, 0x4}, {0xc0040b82b0, 0x2, 0x2})\n\t/workspace/pkg/controller/statefulset/stateful_set_control.go:147 +0x1c5\ngithub.com/openkruise/kruise/pkg/controller/statefulset.(*defaultStatefulSetControl).UpdateStatefulSet(0xc00101bbc0, {0x3207ca0, 0xc003f139b0}, 0xc003a76b08?, {0xc002c3a220, 0x3, 0x4})\n\t/workspace/pkg/controller/statefulset/stateful_set_control.go:123 +0x131\ngithub.com/openkruise/kruise/pkg/controller/statefulset.(*ReconcileStatefulSet).syncStatefulSet(0xc0005e4fa0, {0x3207ca0, 0xc003f139b0}, 0xc004148b08, {0xc002c3a220, 0x3, 0x4})\n\t/workspace/pkg/controller/statefulset/statefulset_controller.go:364 +0x268\ngithub.com/openkruise/kruise/pkg/controller/statefulset.(*ReconcileStatefulSet).Reconcile(0xc0005e4fa0, {0x3207ca0, 0xc003f139b0}, {{{0xc003bd6440?, 0x195ab3a?}, {0xc0042821ac?, 0x0?}}})\n\t/workspace/pkg/controller/statefulset/statefulset_controller.go:295 +0x4c6\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Reconcile(0xc0039e8f80?, {0x3207ca0?, 0xc003f139b0?}, {{{0xc003bd6440?, 0x0?}, {0xc0042821ac?, 0x0?}}})\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.20.2/pkg/internal/controller/controller.go:118 +0xbf\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).reconcileHandler(0x323dee0, {0x3207cd8, 0xc0009acaf0}, {{{0xc003bd6440, 0x1b}, {0xc0042821ac, 0x2}}})\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.20.2/pkg/internal/controller/controller.go:328 +0x3a5\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).processNextWorkItem(0x323dee0, {0x3207cd8, 0xc0009acaf0})\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.20.2/pkg/internal/controller/controller.go:288 +0x20e\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Start.func2.2()\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.20.2/pkg/internal/controller/controller.go:249 +0x85\ncreated by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller[...]).Start.func2 in goroutine 1050\n\t/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.20.2/pkg/internal/controller/controller.go:245 +0x6b8\n"
E0409 20:15:05.766112 1 controller.go:341] "msg"="Reconciler error" "error"="panic: 1.19 is not in dotted-tri format [recovered]" "controller"="statefulset-controller" "name"="ss" "namespace"="e2e-tests-statefulset-l9v54" "object"={"name":"ss","namespace":"e2e-tests-statefulset-l9v54"} "reconcileID"="0e4fd951-428b-4f30-95a5-c25695bba5c3"
What happened:
Deploy openkruise 1.9 on private kubernetes cluster which minor info is
Minor:"19+, then controller reconcile error:What you expected to happen:
Reconcile success
How to reproduce it (as minimally and precisely as possible):
Set cluster Minor info as
1.28+Anything else we need to know?:
Environment:
kubectl version): Client Version: version.Info{Major:"1", Minor:"19+", GitVersion:"v1.19.16-private.2", GitCommit:"xxx"..."}