Repository navigation
Conversation
In a parallel SortedBuilder or UnsortedBuilder build, a block that fails cancels the workers' context and reaches the writer, which reports it on writerDone. The goroutine dispatching blocks waits on both, and when it saw the context first it returned context.Canceled: about one build in eight with a duplicate key in its first block did. It now returns the context's cause, which is the failure's error, or the build context's error when the build was canceled. The writer now cancels with its error as the cause. Its own errors need that, and so does a block's error when the writer's cancel lands before the failed worker's, which 9 of 14,000 sorted builds did under stress. The teardown harness's duplicate-key scenario no longer accepts context.Canceled; the old code failed it 15 times in 3 runs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DjQed1VX9uGU9PWpAjBiz7
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.
In a parallel
SortedBuilderorUnsortedBuilderbuild, a block that fails to build cancels the workers' context and reaches the writer, which reports the failure. The goroutine dispatching blocks waits on both, and when it saw the context first it returnedcontext.Canceledinstead of the failure. A build with a duplicate key in its first block returnedcontext.Canceledabout one time in eight, so a caller checking forErrDuplicateKeymissed it.dispatchBlockWorkand in the unsorted builder's parallel finish, now returns the context's cause: the error of the worker or writer that failed, or the build context's error when the caller canceled the build.The teardown fuzz harness's duplicate-key scenario now requires
ErrDuplicateKeyand no longer acceptscontext.Canceled. The old code failed it 15 times in 3 runs.🤖 Generated with Claude Code