-
Notifications
You must be signed in to change notification settings - Fork 787
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
fix: ensure that the proxy server shuts down to prevent wrangler dev
from hanging
#1088
fix: ensure that the proxy server shuts down to prevent wrangler dev
from hanging
#1088
Conversation
…` from hanging When running `wrangler dev` we create a proxy to the actual remote Worker. After creating a connection to this proxy by a browser request the proxy did not shutdown. Now we use a `HttpTerminator` helper library to force the proxy to close open connections and shutdown correctly. Fixes cloudflare#958
🦋 Changeset detectedLatest commit: 2dfb45e The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
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 |
A wrangler prerelease is available for testing. You can install this latest build in your project with: npm install --save-dev https://prerelease-registry.developers.workers.dev/runs/2370448194/npm-package-wrangler-1088 You can reference the automatically updated head of this PR with: npm install --save-dev https://prerelease-registry.developers.workers.dev/prs/1088/npm-package-wrangler-1088 Or you can use npx https://prerelease-registry.developers.workers.dev/runs/2370448194/npm-package-wrangler-1088 dev path/to/script.js |
This "quick-win" refactors some of the code to avoid the use of `any` where possible. Using `any` can cause type-checking to be disabled across the code in unexpectedly wide-impact ways. There is one other use of `any` not touched here because it is fixed by cloudflare#1088 separately.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
// Running `proxy.server.close()` does not close open connections, preventing the process from exiting. | ||
// So we use this `terminator` to close all the connections and force the server to shutdown. | ||
proxy.terminator.terminate(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The terminate w/ the previous .abort()
addition is looking very promising to improve Wrangler graceful shutdown.
This "quick-win" refactors some of the code to avoid the use of `any` where possible. Using `any` can cause type-checking to be disabled across the code in unexpectedly wide-impact ways. There is one other use of `any` not touched here because it is fixed by #1088 separately.
When running
wrangler dev
we create a proxy to the actual remote Worker.After creating a connection to this proxy by a browser request the proxy did not shutdown.
Now we use a
HttpTerminator
helper library to force the proxy to close open connections and shutdown correctly.Fixes #958