Fix queue worker incorrectly stopped when there are still more items in the queue (#29532) #29546
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.
Backport #29532 by wxiaoguang
Without
case <-t.C
, the workers would stop incorrectly, the test won't pass. For the worst case, there might be only one running worker processing the queue items for long time because other workers are stopped. Thanks to oliverpool for looking into the problem and proposing a fix.Actually, the real problem is not completely fixed, the root cause is not directly related to the ticker, but is related to the logic of doDispatchBatchToWorker. It isn't a serious problem at the moment, so keep it as-is. More comments are added.