Expected Behavior
During normal operation the event-listener does not panic.
Actual Behavior
The event listener panics on concurrent write access to the extensions map.
Steps to Reproduce the Problem
Generally, the problem seems to occur with the use of TriggerGroups that target multiple Triggers that use extensions.
I've added a unit test with high concurrency (100 goroutines) that is able to reproduce the problem:
go test -race is able to detect the problem with low concurrency (only 2 goroutines).
Additional Info
These gists are dumps of the stack traces from panics due to this issue:
Expected Behavior
During normal operation the event-listener does not panic.
Actual Behavior
The event listener panics on concurrent write access to the
extensionsmap.Steps to Reproduce the Problem
Generally, the problem seems to occur with the use of TriggerGroups that target multiple Triggers that use extensions.
I've added a unit test with high concurrency (100 goroutines) that is able to reproduce the problem:
go test -raceis able to detect the problem with low concurrency (only 2 goroutines).Additional Info
Kubernetes version:
Output of
kubectl version:Tekton Pipeline version:
Output of
tkn versionorkubectl get pods -n tekton-pipelines -l app=tekton-pipelines-controller -o=jsonpath='{.items[0].metadata.labels.version}':These gists are dumps of the stack traces from panics due to this issue: