Description
Brief summary
We realized, that our TestRuns get stuck without any information/logs printed out if the script itself is incorrect.
Cause
We already had a deeper look and realized that this is likely related to the Log message parsing of the k6 inspect
executed within the initalizer here:
When we execute k6 inspect
manually inside the container, we get the following error:
/ # k6 inspect --execution-requirements /test/<REDACTED>.js
ERRO[0009] could not initialize '/test/<REDACTED>.js': could not load JS test 'file:///test/<REDACTED>.js': unknown executor type 'burst'
The log parsing mentioned above, basically does a | grep 'level=error
, which does not work for the error message we are facing since the log format seems to be different.
Might be related to: grafana/k6-docs#877
k6-operator version or image
ghcr.io/grafana/k6-operator:controller-v0.0.14
Helm chart version (if applicable)
No response
TestRun / PrivateLoadZone YAML
Since we built a custom k6 image to include the script to be used as localfile, it would need some additional effort to make this available.
However, IMO this is not really related to a specific TestRun.
Other environment details (if applicable)
k6 version: k6 v0.51.0 (go1.22.4, linux/amd64)
Steps to reproduce the problem
- Deploy any TestRun resource with a broken JS script
Expected behaviour
- Initalizer Pods fails or at least logs the issues which are encountered during
k6 inspect
- TestRun resource is in Failed state
Actual behaviour
- Initalizer Pod runs but does not print out anything
- The k6-operator-controller-manager logs errors (see below) about unparsable JSON without any information
- TestRun resource stuck in
initilization
phase
Logs of k6-operator
2024-07-30T09:11:00Z ERROR controllers.TestRun unable to marshal: `` {"namespace": "loadtesting", "name": "<REDACTED>", "reconcileID": "<REDACTED>", "error": "unexpected end of JSON input"}
github.com/grafana/k6-operator/controllers.inspectTestRun
/workspace/controllers/common.go:105
github.com/grafana/k6-operator/controllers.RunValidations
/workspace/controllers/k6_initialize.go:55
github.com/grafana/k6-operator/controllers.(*TestRunReconciler).reconcile
/workspace/controllers/testrun_controller.go:137
github.com/grafana/k6-operator/controllers.(*TestRunReconciler).Reconcile
/workspace/controllers/testrun_controller.go:80
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Reconcile
/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:119
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:316
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:266
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:227
2024-07-30T09:11:00Z ERROR Reconciler error {"controller": "testrun", "controllerGroup": "k6.io", "controllerKind": "TestRun", "TestRun": {"name":"<REDACTED>","namespace":"loadtesting"}, "namespace": "loadtesting", "name": "<REDACTED>", "reconcileID": "<REDACTED>", "error": "unexpected end of JSON input"}
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler
/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:329
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem
/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:266
sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2
/go/pkg/mod/sigs.k8s.io/[email protected]/pkg/internal/controller/controller.go:227