删除一个默认的监听器,emqx operator容器不断异常重启

环境

  • EMQX 版本:5.8.0
  • EMQX Operator 版本:2.2.25

重现此问题的步骤

  1. 部署emqx
apiVersion: apps.emqx.io/v2beta1
kind: EMQX
metadata:
  name: emqx-simple
spec:
  image: "emqx:5.8.0"
  1. 通过dashboard删除tcp监听器

预期行为

emqx operator容器正常运行

实际行为

emqx operator容器不断重启,且有异常日志

{"level":"info","ts":"2024-11-07T13:13:17Z","msg":"Observed a panic in reconciler: interface conversion: hocon.Value is hocon.String, not hocon.Object","controller":"emqx","controllerGroup":"apps.emqx.io","controllerKind":"EMQX","EMQX":{"name":"emqx-simple","namespace":"emqx"},"namespace":"emqx","name":"emqx-simple","reconcileID":"3c46a1aa-d93d-4b6a-aee4-1a22dfb134b7"}
panic: interface conversion: hocon.Value is hocon.String, not hocon.Object [recovered]
	panic: interface conversion: hocon.Value is hocon.String, not hocon.Object

goroutine 266 [running]:
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile.func1()
	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:116 +0x1e5
panic({0x197c160?, 0xc001fea8a0?})
	/usr/local/go/src/runtime/panic.go:770 +0x132
github.com/emqx/emqx-operator/apis/apps/v2beta1.GetListenersServicePorts({0xc001955000, 0x2d34})
	/workspace/apis/apps/v2beta1/util.go:268 +0x141e
github.com/emqx/emqx-operator/controllers/apps/v2beta1.generateListenerService(0xc001805208, {0xc001955000?, 0xc001f92fc0?})
	/workspace/controllers/apps/v2beta1/add_svc.go:107 +0x19b
github.com/emqx/emqx-operator/controllers/apps/v2beta1.(*addSvc).reconcile(0xc000256bd0, {0x1e76ac8, 0xc001114000}, {{0x1e7afb8?, 0xc001114030?}, 0xc001114000?}, 0xc001805208, {0x1e78aa0, 0xc001f92fc0})
	/workspace/controllers/apps/v2beta1/add_svc.go:39 +0x385
github.com/emqx/emqx-operator/controllers/apps/v2beta1.(*EMQXReconciler).Reconcile(0xc00011db00, {0x1e76ac8, 0xc001114000}, {{{0xc000013a88?, 0x5?}, {0xc000013a90?, 0xc00010fd10?}}})
	/workspace/controllers/apps/v2beta1/emqx_controller.go:137 +0x7c3
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile(0x1e7afb8?, {0x1e76ac8?, 0xc001114000?}, {{{0xc000013a88?, 0xb?}, {0xc000013a90?, 0x0?}}})
	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:119 +0xb7
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc000292460, {0x1e76b00, 0xc0003c92c0}, {0x1a0de80, 0xc000174ae0})
	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:316 +0x3bc
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc000292460, {0x1e76b00, 0xc0003c92c0})
	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.17.2/pkg/internal/controller/controller.go:266 +0x1be
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2()

请更新的最新的 EMQX operator 版本,然后观察一下还有这个 error log 么?

已经使用了最新的EMQX operator 版本2.2.25。报了这样的错。

直接在spec.config.data中配置删除tcp监听器,也导致operator容器重启,也报这样的日志。

listeners.tcp.default = "marked_for_deletion"