-
Bug
-
Resolution: Done-Errata
-
Minor
-
Logging 5.9.0
-
False
-
None
-
False
-
NEW
-
NEW
-
-
Bug Fix
-
-
-
Log Collection - Sprint 249, Log Collection - Sprint 250
-
Low
The following affects the old / legacy implementation of the forwarder. For the upstream bug, see: https://github.com/openshift/cluster-logging-operator/issues/2312
Nil pointer exception with clusterLogging.Spec.Collection empty and Forwarder enabled.
The following combination throws a nil pointer exception:
ClusterLogging:
apiVersion: "logging.openshift.io/v1" kind: "ClusterLogging" metadata: name: "instance" namespace: openshift-logging spec: managementState: "Managed"
ClusterLogForwarder:
apiVersion: logging.openshift.io/v1
kind: ClusterLogForwarder
metadata:
name: instance
namespace: openshift-logging
spec:
pipelines:
- inputRefs:
- audit
outputRefs:
- loki-external
labels:
job: openshift-audit
clusterid: sno10
- inputRefs:
- application
outputRefs:
- loki-external
labels:
job: openshift-application
clusterid: sno10
- inputRefs:
- infrastructure
outputRefs:
- loki-external
labels:
job: openshift-infrastructure
clusterid: sno10
outputs:
- name: loki-external
type: loki
url: http://192.168.18.75:310
[akaris@workstation logging]$ oc apply -f configuring-cluster-logging-minimal-minimal.yaml clusterlogging.logging.openshift.io/instance created [akaris@workstation logging]$ oc apply -f configuring-log-forwarder.yaml clusterlogforwarder.logging.openshift.io/instance created [akaris@workstation logging]$
$ LOG_LEVEL=3 make run (...) {"_ts":"2024-01-18T11:18:45.623084752Z","_file:line":"internal/reconcile/rbac.go:37","_level":"3","_component":"cluster-logging-operator","_message":"Roles are the same skipping update"} {"_ts":"2024-01-18T11:18:45.623126639Z","_file:line":"internal/reconcile/rbac.go:70","_level":"3","_component":"cluster-logging-operator","_message":"RoleBindings are the same skipping update"} {"_ts":"2024-01-18T11:18:45.623159759Z","_file:line":"internal/k8shandler/clusterloggingrequest.go:107","_level":"3","_component":"cluster-logging-operator","_message":"Getting object","namespacedName":{"Namespace":"openshift-logging","Name":"logcollector-token"},"object":{"metadata":{"creationTimestamp":null}}} 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=0x15c31d8] goroutine 351 [running]: sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile.func1() /home/akaris/development/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.14.5/pkg/internal/controller/controller.go:119 +0x1e5 panic({0x1737be0?, 0x28a4ed0?}) /usr/lib/golang/src/runtime/panic.go:914 +0x21f github.com/openshift/cluster-logging-operator/internal/k8shandler.(*ClusterLoggingRequest).generateCollectorConfig(0xc000927058) /home/akaris/development/cluster-logging-operator/internal/k8shandler/forwarding.go:48 +0x298 github.com/openshift/cluster-logging-operator/internal/k8shandler.(*ClusterLoggingRequest).CreateOrUpdateCollection(0xc000927058) /home/akaris/development/cluster-logging-operator/internal/k8shandler/collection.go:72 +0x2b2 github.com/openshift/cluster-logging-operator/internal/k8shandler.Reconcile(0xc0008d84e0, 0xc000898a80, {0x1c12238, 0xc000290180}, {0x7fb45823e568, 0xc000292770}, {0x1c099b0, 0xc0002d8340}, {0xc0003ca158, 0x6}, ...) /home/akaris/development/cluster-logging-operator/internal/k8shandler/reconciler.go:67 +0x81f github.com/openshift/cluster-logging-operator/controllers/forwarding.(*ReconcileForwarder).Reconcile(0xc000700420, {0x30?, 0xc000588000?}, {{{0xc00063dfb0?, 0x0?}, {0xc000331060?, 0x412205?}}}) /home/akaris/development/cluster-logging-operator/controllers/forwarding/forwarding_controller.go:115 +0xc35 sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile(0x1c0ab18?, {0x1c0ab18?, 0xc000b04d50?}, {{{0xc00063dfb0?, 0x1684940?}, {0xc000331060?, 0xc000c037d0?}}}) /home/akaris/development/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.14.5/pkg/internal/controller/controller.go:122 +0xb7 sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler(0xc000298460, {0x1c0ab50, 0xc0002a90e0}, {0x17b7fe0?, 0xc000332da0?}) /home/akaris/development/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.14.5/pkg/internal/controller/controller.go:323 +0x353 sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem(0xc000298460, {0x1c0ab50, 0xc0002a90e0}) /home/akaris/development/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.14.5/pkg/internal/controller/controller.go:274 +0x1c9 sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2() /home/akaris/development/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.14.5/pkg/internal/controller/controller.go:235 +0x79 created by sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2 in goroutine 107 /home/akaris/development/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.14.5/pkg/internal/controller/controller.go:231 +0x565 exit status 2 make: *** [Makefile:150: run] Error 1
Directly related to this is upstream bug: https://github.com/openshift/cluster-logging-operator/issues/2314
After a valid ClusterLogForwarder and an invalid ClusterLogging resource are created, the ClusterLogForwarder's status will show that the CLF is not available. When the ClusterLogging CR is then changed to a valid configuration, the CLF's status should reflect that everything is o.k. - but currently, code for that is missing.
- links to
-
RHBA-2024:128809 Logging Subsystem 5.9.0 - Red Hat OpenShift