fix: Gracefully exit process on EADDRINUSE in test servers #594
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.
fix: Gracefully exit process on EADDRINUSE in test servers
The test helper servers (bucket-server, receipts-server, etc.)
were crashing due to an unhandled 'error' event when attempting to
bind to a port that was already in use (EADDRINUSE).
This commit adds an explicit error handler to the server instance
to catch EADDRINUSE, log a warning, and exit the test process
with an error code (1) instead of allowing the application to
throw an unhandled exception.
Before it was showing:
Error: listen EADDRINUSE: address already in use :::[PORT]
at Server.setupListenHandle [as _listen2] (net.js:1317:21)
at listenInCluster (net.js:1382:12)
at Server.listen (net.js:1465:7)
at Object. ([file-path]/bucket-server.js:[LINE]:[COL])
// ... followed by a full stack trace and process exit
After it was showing:
Error: Port [PORT] is already in use. Test server failed to start.
Process exits with code 1 instead of crashing, allowing clean CI failure.
Fixes #554