fix: prevent progress printer race - #690
Merged
Merged
Conversation
Signed-off-by: Aleksei Igrychev <aleksei.igrychev@palark.com>
Member
Author
|
Verification:
Tracked in werf/werf#7775. |
14 tasks
alexey-igrychev
added a commit
to werf/werf
that referenced
this pull request
Aug 8, 2026
Use werf/nelm#690 so race CI can classify reports before the upstream merge. Signed-off-by: Aleksei Igrychev <aleksei.igrychev@palark.com>
alexey-igrychev
added a commit
to werf/werf
that referenced
this pull request
Aug 10, 2026
Use werf/nelm#690 so race CI can classify reports before the upstream merge. Signed-off-by: Aleksei Igrychev <aleksei.igrychev@palark.com>
alexey-igrychev
added a commit
to werf/werf
that referenced
this pull request
Aug 10, 2026
Use werf/nelm#690 so race CI can classify reports before the upstream merge. Signed-off-by: Aleksei Igrychev <aleksei.igrychev@palark.com>
alexey-igrychev
marked this pull request as ready for review
August 10, 2026 14:28
alexey-igrychev
added a commit
to werf/werf
that referenced
this pull request
Aug 10, 2026
…7805) ## Summary Bump `werf/nelm` to `06096861c106` so concurrent release tracking no longer data-races on the progress table printer. The race was reproduced under the race detector in `e2e_complex` during release uninstall, where `ProgressTablesPrinter.Stop` read state that the `Start` worker was still writing. ## What - Deploy no longer triggers a data race in `ProgressTablesPrinter.Start`/`Stop` during concurrent release tracking (werf/nelm#690). - Deploy now matches Kubernetes resource condition types case-insensitively during tracking (werf/nelm feat + werf/kubedog bump to `e8f61a4bc90a`). - The nelm range `8b420d326cbc..06096861c106` also carries werf/nelm#688 (concurrent Helm configuration race); nelm branch `2` was rebased between the two pins, so the range is `diverged` rather than strictly linear. - VERIFIED: `task build` (macOS, non-CGO) succeeds against the new pins. ## Why werf/nelm#690 moves printer state initialization before the tracking goroutine starts, so `Stop` no longer reads a field the worker is concurrently assigning. It is the last dependency race left open in `e2e_complex`. nelm is an ordinary versioned dependency, so the fix lands as a nelm PR plus this bump; the intermediate commits on branch `2` come along with the tip. Signed-off-by: Aleksei Igrychev <aleksei.igrychev@palark.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Progress-table printer initialization now completes before its worker goroutine starts. Callers can immediately stop and wait for a printer without concurrently reading state the worker is still assigning.
The race was reported by werf race CI during release uninstall:
ProgressTablesPrinter.Stopread the cancellation function whileStartassigned it in the worker goroutine.