start go routines after cs controller manager setup #2333
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What this PR does / why we need it:
Given there are multiple receivers(multiple go routines) on a single channel
ch := make(chan *bootstrap.Bootstrap)
and we are only sending one data into the channelch <- bs
, only a single random go routines will receive the data, and unblock the code. See this article for detailsThus, it is complicated to use the same single channel for multiple go routines. Instead we just start go routines after cs controller manager is set properly.
Which issue(s) this PR fixes:
Fixes https://github.ibm.com/IBMPrivateCloud/roadmap/issues/65568
Test
After applying the dev build image
docker-na-public.artifactory.swg-devops.com/hyc-cloud-private-scratch-docker-local/ibmcom/common-service-operator-amd64:dev
, the CS operator will have following sequenceunknown caches
.