core: a proper timeout for big upload requests
As it stands now it's tricky - if not impossible - to configure Envoy Mobile timeouts so that they follow typical expectations that mobile engineers tend to have from network requests used to perform big upload requests.
This issue is going to reference Lyft timeout policy but in general, presented scenario should apply to most of the mobile apps.
So at Lyft we have a policy where we want to ensure that each request's retry takes at most 15 seconds. We use per_try_idle_timeout to accomplish that - that's great. At the same time we disable stream_idle_timeout (by setting it to 0) as some of our requests have potentially unlimited number of retries - whether it's a good idea or not is a separate story.
The issue that we are seeing is that when we try to upload bigger files - let's say 10MBs - our requests continue to fail with per_try_idle_timeout timeout. Per the definition of that specific timeout that seems to be an expected behavior.
Now, the question is. Is it possible to configure Envoy Mobile so that it
- ensure that each of requests' retries takes x seconds at most
- does not timeout a given request if it continues to receive bytes from server or continues to send bytes to the server?