Fix Streaming Issues & Cleanup Async #493
Merged
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.
Summary
I noticed a couple issues while working through the Streaming stuff.
There is an issue with how we were handling semaphore management. We were offloading the user's predict work to a background task, and releasing the semaphore before that finishes. This means that users might be getting more concurrency than they ask for.
If a stream throws an error partway through, right now, the user does not see a good error in the logs, and the client hangs for a minute.
In addition, in this PR, did some cleanup on the async stuff.
Solutions
None
, so that the response generator can terminate, and doesn't hang for 60 seconds.Testing
Added integration tests for both of these complicated cases, and will test manually as well on dev.