Skip to content
This repository was archived by the owner on Dec 12, 2025. It is now read-only.
This repository was archived by the owner on Dec 12, 2025. It is now read-only.

[BUG] operator crashes if tls config is invalid #1114

@thesn10

Description

@thesn10

If tls config is invalid,
the operator just crashes instead of giving a proper validation error.

2022-09-09T16:22:38.660Z	DEBUG	controllers/replica_set_controller.go:140	Validating MongoDB.Spec	{"ReplicaSet": "..."}
2022-09-09T16:22:38.661Z	DEBUG	controllers/replica_set_controller.go:149	Ensuring the service exists	{"ReplicaSet": "..."}
2022-09-09T16:22:38.864Z	DEBUG	agent/replica_set_port_manager.go:122	No port change required	{"ReplicaSet": "..."}
2022-09-09T16:22:38.874Z	INFO	controllers/replica_set_controller.go:464	Create/Update operation succeeded	{"ReplicaSet": "...", "operation": "updated"}
2022-09-09T16:22:38.874Z	INFO	controllers/mongodb_tls.go:39	Ensuring TLS is correctly configured	{"ReplicaSet": "..."}
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=0x13d202e]

goroutine 354 [running]:
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile.func1()
	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.3/pkg/internal/controller/controller.go:118 +0x1f4
panic({0x15247e0, 0x24553c0})
	/usr/local/go/src/runtime/panic.go:838 +0x207
github.com/mongodb/mongodb-kubernetes-operator/api/v1.MongoDBCommunity.TLSConfigMapNamespacedName(...)
	/workspace/api/v1/mongodbcommunity_types.go:797
github.com/mongodb/mongodb-kubernetes-operator/controllers.getCaCrt({_, _}, {_, _}, {{{0x14080c8, 0x10}, {0xc0004b61e0, 0x1f}}, {{0xc0003f9d20, 0x10}, ...}, ...})
	/workspace/controllers/mongodb_tls.go:166 +0x12e
github.com/mongodb/mongodb-kubernetes-operator/controllers.(*ReplicaSetReconciler).validateTLSConfig(_, {{{0x14080c8, 0x10}, {0xc0004b61e0, 0x1f}}, {{0xc0003f9d20, 0x10}, {0x0, 0x0}, {0xc0003f9d18, ...}, ...}, ...})
	/workspace/controllers/mongodb_tls.go:42 +0x125
github.com/mongodb/mongodb-kubernetes-operator/controllers.ReplicaSetReconciler.Reconcile({{0x19c5b60, 0xc0005248a0}, 0xc000158540, 0xc0003fe158, 0xc0003fe370, 0xc0003fe378}, {0x19bd600?, 0xc000130d20?}, {{{0xc0003f9d18, 0x8}, ...}})
	/workspace/controllers/replica_set_controller.go:158 +0x7d9
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile(0x19bd558?, {0x19bd600?, 0xc000130d20?}, {{{0xc0003f9d18?, 0x1627a00?}, {0xc0003f9d20?, 0x4041f4?}}})
	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.3/pkg/internal/controller/controller.go:121 +0xc8
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc0004a28c0, {0x19bd558, 0xc000526f00}, {0x1574ca0?, 0xc000348060?})
	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.3/pkg/internal/controller/controller.go:320 +0x33c
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc0004a28c0, {0x19bd558, 0xc000526f00})
	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.3/pkg/internal/controller/controller.go:273 +0x1d9
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2()
	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.3/pkg/internal/controller/controller.go:234 +0x85
created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2
	/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.12.3/pkg/internal/controller/controller.go:230 +0x325
apiVersion: mongodbcommunity.mongodb.com/v1
kind: MongoDBCommunity
metadata:
  name: ...
spec:
  members: 1
  type: ReplicaSet
  version: "5.0.6"
  security:
    tls:
      enabled: true
      certificateKeySecretRef:
        name: mongodb-cert-secret
      #missing caConfigMapRef

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions