OctopusDeploy / Halibut

| Public | A secure communication stack for .NET using JSON-RPC over SSL.
Other
12 stars 44 forks source link

Stop Timeout While Waiting for Response #577

Closed sburmanoctopus closed 9 months ago

sburmanoctopus commented 9 months ago

[sc-59506]

Background

It was noticed that PollingRequestMaximumMessageProcessingTimeout was redundant.

PollingRequestMaximumMessageProcessingTimeout is the amount of time we will wait for a response to be given from a request that has already been dequeued.

The down side of keeping PollingRequestMaximumMessageProcessingTimeout is that it will also timeout an operation that is successful, but taking a long time (e.g. downloading a large package to a Tentacle, or over a slow network, complex script/action for Tentacle to run etc.).

We think it was added years ago as a way to ensure we do not wait forever if communications with the Tentacle dies.

But we believe this won't be an issue because:

Results

Related to OctopusDeploy/Issues#8229

Before

No matter why it took a long time to complete a task, we would always timeout after PollingRequestMaximumMessageProcessingTimeout

After

We now simply wait until a response is applied, and rely on the communication timeouts and response applying to break the waiting.

How to review this PR

Quality :heavy_check_mark:

Pre-requisites

shortcut-integration[bot] commented 9 months ago

This pull request has been linked to Shortcut Story #59506: Decouple the Polling Response Timeout from the duration it takes to transfer a request and response.