fix: do not block identify on SSE client shutdown completion #384
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.
It appears that the
async_shutdown
method in Foxy client hangs indefinitely. It's not clear to me whether this is because the FD servers are misbehaving, or the client is somehow misbehaving.In any case, this is causing Identify to hang because it waits for
async_shutdown
completion handler to be invoked before creating a new EventSource client.One solution would be to not wait for that, and just make the new client immediately. That works, but it still leaves the old client sitting in memory waiting forever.
Instead, I've changed the shutdown logic to simply close the TCP socket.