EXPERIMENT (do not merge): does the tail-forwarding fix stop the Windows crash? - #15006
Draft
petebacondarwin wants to merge 2 commits into
Draft
EXPERIMENT (do not merge): does the tail-forwarding fix stop the Windows crash?#15006petebacondarwin wants to merge 2 commits into
petebacondarwin wants to merge 2 commits into
Conversation
`tail()` returned the forwarding RPC's promise from inside a `try`/`catch`, so the rejection a departed peer produces landed outside the `try` and escaped as an unhandled rejection. The `catch` only ever guarded the synchronous `JSON` work, so a peer going away produced no diagnostic at all. Await the call so the rejection is caught and reported.
Round 8 narrowed the trigger to killing a peer that is both an assets worker and the victim's tail consumer, which is the path PR #14993 stops dropping rejections on. Baseline to beat: 4/5 reps over 17 kill cycles.
🦋 Changeset detectedLatest commit: 2fee67b The changes in this PR will be included in the next version bump. This PR includes changesets to release 8 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
Contributor
|
✅ All changesets look good |
@cloudflare/autoconfig
@cloudflare/build-output-utils
@cloudflare/config
create-cloudflare
@cloudflare/deploy-helpers
@cloudflare/kv-asset-handler
miniflare
@cloudflare/pages-functions
@cloudflare/pages-shared
@cloudflare/unenv-preset
@cloudflare/vite-plugin
@cloudflare/vitest-pool-workers
@cloudflare/workers-auth
@cloudflare/workers-editor-shared
@cloudflare/workers-utils
wrangler
commit: |
Contributor
|
@petebacondarwin Bonk workflow was cancelled. View workflow run · To retry, trigger Bonk again. |
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.
Temporary diagnostic branch. Not for merge — will be closed once it has answered its question. Companion to #15001.
This branch is #14993 plus the bisect harness. Eight rounds of bisecting on Windows CI narrowed the
fixtures/dev-registrycrash to a single trigger:worker-entrypoint-with-assetsworker-entrypointexported-handler-with-assetsBeing an assets worker is not sufficient, and being bound is not sufficient. The only peer whose abrupt death aborts the survivor is the one reached over the tail path through the assets RPC-proxy hop — which is exactly where #14993 stops a departed peer's rejection from escaping unhandled.
Also ruled out along the way: forced dev-server restarts (0/3), hand-written registry churn with no live peer (0/3), idle sessions at any count (0/41), port contention, start order, CPU starvation, and traffic through the binding.
Baseline to beat here is 4/5 reps over 17 kill cycles, so this run does 8 reps of the crashing arm plus both negative controls.