Repository navigation
A fleet being stopped or retired leaves no proxy behind; release 0.7.4 - #37
Merged
Merged
Conversation
…d retire close the one that is open; release 0.7.4 A caller's status read that arrived while the fleet was being stopped opened a private proxy that nothing closed after retire; the fly proxy process then kept the caller alive (Fixes #36).
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.
Fixes #36.
In a real Greenswarm run (Nov 12, 0.7.3), a fleet's teams were done, but the caller only exited when a leftover
fly proxyprocess was ended by hand. Its status poller read the fleet once more while the fleet was being stopped.request()then opened a new private proxy, and nothing closed it afterretire().What changes in
src/cloud-lite/fleet.mjs:stop()runs, and once the fleet is retired,request()opens no new connection. It says why instead.stop()andretire()close the open connection at their end, also when they fail.start()(a recovery) opens the fleet up again, so a fleet started after a stop connects as before.disconnect()clears the connection before it stops it, so a second call does nothing.The collection path (
verifiedShutdown) still makes its requests before the fleet counts as stopped, as before.Release 0.7.4 (package.json and package-lock.json).
Test:
test/cloud-lite-connection.test.mjscovers four cases:All four fail without the change. The full suite needs Node 22.17 or 24 (
node:sqlitebackup); this PC has 22.13, so the matrix in CI is the check.Greenswarm works around the fault for now (flujo-app/greenswarm#346). It takes that out when it pins this release.