This session manager then opens a new HTTP/2 connection even if there are other streaming transcription requests already in flight. Coupled with the issue #76 about connections never being evicted from AwsCrtHttpSessionManager's cache this can lead to file descriptor exhaustion in long-running processes (ie service workers) due to the socket FDs never being released.
I would also note that HTTP/2 connections are meant to be multiplexed, and opening multiple connections to the same endpoint defeats the purpose of having HTTP/2 in first place.
Each time a call to
start_stream_transcription
is made on aTranscribeStreamingClient
, a newAwsCrtHttpSessionManager
is created:https://github.com/awslabs/amazon-transcribe-streaming-sdk/blob/95349afd317b83b06b0c3dadc3a51720595bf876/amazon_transcribe/client.py#L173
This session manager then opens a new HTTP/2 connection even if there are other streaming transcription requests already in flight. Coupled with the issue #76 about connections never being evicted from
AwsCrtHttpSessionManager
's cache this can lead to file descriptor exhaustion in long-running processes (ie service workers) due to the socket FDs never being released.I would also note that HTTP/2 connections are meant to be multiplexed, and opening multiple connections to the same endpoint defeats the purpose of having HTTP/2 in first place.