Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove special handling for 'Failed to start ProxyWorker or InspectorProxyWorker' #7169

Merged
merged 8 commits into from
Nov 7, 2024

Conversation

penalosa
Copy link
Contributor

@penalosa penalosa commented Nov 5, 2024

Fixes #6510, fixes #4637

Remove the special handling for the Failed to start ProxyWorker or InspectorProxyWorker error. The intention of this code was to recover from port conflicts when running wrangler dev, but it actually seems to have been causing orphaned workerd processes. Because we use getPort() when resolving config in ConfigController, the only way this code path is hit is if the proxy workerd instance fails to start because of a port conflict where the user has specified a port (i.e. with --port or dev.port = ) that conflicts (or is reserved e.g. 80). In those cases, this codepath restarted workerd with a different port, but also ended up hitting throw error; in ProxyController, which ended up with a global uncaught exception that crashed the Wrangler process, leaving dangling workerd processes. This meant that the recovery logic wasn't working.

This PR removes the recovery logic entirely, which allows the general DevEnv error handling to take over. This means that workerd should be cleaned up properly, and the user-facing error messages should be nicer.

Previous address-in-use error:

Screenshot 2024-11-05 at 11 20 14

New address-in-use error:

Screenshot 2024-11-05 at 11 20 48
  • Tests
    • TODO (before merge)
    • Tests included
    • Tests not necessary because:
  • E2E Tests CI Job required? (Use "e2e" label or ask maintainer to run separately)
    • I don't know
    • Required
    • Not required because:
  • Public documentation
    • TODO (before merge)
    • Cloudflare docs PR(s):
    • Documentation not necessary because: bugfix

@penalosa penalosa requested a review from a team as a code owner November 5, 2024 11:21
Copy link

changeset-bot bot commented Nov 5, 2024

🦋 Changeset detected

Latest commit: f961143

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
wrangler Patch
@cloudflare/vitest-pool-workers Patch

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

Copy link
Contributor

github-actions bot commented Nov 5, 2024

A wrangler prerelease is available for testing. You can install this latest build in your project with:

npm install --save-dev https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/11724419612/npm-package-wrangler-7169

You can reference the automatically updated head of this PR with:

npm install --save-dev https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/prs/7169/npm-package-wrangler-7169

Or you can use npx with this latest build directly:

npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/11724419612/npm-package-wrangler-7169 dev path/to/script.js
Additional artifacts:
npx https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/11724419612/npm-package-create-cloudflare-7169 --no-auto-update
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/11724419612/npm-package-cloudflare-kv-asset-handler-7169
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/11724419612/npm-package-miniflare-7169
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/11724419612/npm-package-cloudflare-pages-shared-7169
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/11724419612/npm-package-cloudflare-vitest-pool-workers-7169
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/11724419612/npm-package-cloudflare-workers-editor-shared-7169
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/11724419612/npm-package-cloudflare-workers-shared-7169
npm install https://prerelease-registry.devprod.cloudflare.dev/workers-sdk/runs/11724419612/npm-package-cloudflare-workflows-shared-7169

Note that these links will no longer work once the GitHub Actions artifact expires.


wrangler@3.85.0 includes the following runtime dependencies:

Package Constraint Resolved
miniflare workspace:* 3.20241022.0
workerd 1.20241106.1 1.20241106.1
workerd --version 1.20241106.1 2024-11-06

Please ensure constraints are pinned, and miniflare/workerd minor versions match.

@workers-devprod workers-devprod added the e2e Run wrangler e2e tests on a PR label Nov 5, 2024
@penalosa penalosa requested review from edmundhung and a team November 5, 2024 17:42
@penalosa penalosa merged commit 9098a3b into main Nov 7, 2024
22 checks passed
@penalosa penalosa deleted the penalosa/skip-special-port-handling branch November 7, 2024 15:31
@workers-devprod workers-devprod mentioned this pull request Nov 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
e2e Run wrangler e2e tests on a PR
Projects
None yet
4 participants