Repository navigation
Close the listener when TLS server startup fails - #1223
Open
zhechen-cs wants to merge 1 commit into
Open
zhechen-cs wants to merge 1 commit into
zhechen-cs wants to merge 1 commit into
Conversation
Signed-off-by: Zhe Chen <zhechen.cs@connect.hku.hk>
This branch has not been deployed
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.
start_wsgi_server()binds its listening socket before loading the TLS configuration. If certificate loading or socket wrapping raises, the server is never returned to the caller and the listener stays open while the exception traceback is retained. Retrying startup on the same port then fails with an address-in-use error.Close the server before re-raising TLS setup errors. The regression tests use real listening sockets and cover missing server certificates, missing client CA files, and a TLS context that cannot wrap a server socket. They retain the traceback and verify that the socket is closed and its port can be rebound. Existing successful HTTP, HTTPS and mutual TLS tests still pass.
Validation: all three new cases fail on the unmodified base; after the fix, 431 tests pass and 14 are skipped. The configured flake8, isort and mypy checks pass. Local HTTP tests used
NO_PROXY=localhost,127.0.0.1,::1to bypass the local proxy.@csmarchbanks