Patch HTTPClient to accept socket_connect_timeout #3174
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.
Monkey patch
HTTPClient
to acceptsocket_connect_timeout
as optional configuration. If set, it is used asconnect_timeout
parameter when creating aTCPSocket
.Set the
socket_connect_timeout
inDiego::Client
to (overall)connect_timeout
/ 2.Add test to ensure that the
httpclient
version is not updated without revisiting the monkey patch.Background information
ℹ️ Use case: Mitigates the risk of
Runner is unavailable
andStager is unavailable
errors during a cf push when the client is unable to reach a bbs instance.❌ First, discarded solution proposal: #3002
✔️ Second, merged solution proposal: #3048
💥 Issues caused by #3048
sync-integration-tests
ℹ️ Root cause:
Net::HTTP
and alteredDiego::Client
implementations are not thread-safe.🔄 Revert PR: #3113
✔️ Third, merged solution proposal: #3170
💩 Issues caused by #3170
cc-unit-tests
failing (Concourse)ℹ️ Root cause: Concourse executes the unit tests with Ruby 3.1.3 (as opposed to the version 3.1.2 specified in
.ruby-version
) which includes a newer Net::HTTP version that reverted the usage of theSocket.tcp
'sconnect_timeout
option (see ruby/net-http#74).🔄 Revert PR: #3171
I have reviewed the contributing guide
I have viewed, signed, and submitted the Contributor License Agreement
I have made this pull request to the
main
branchI have run all the unit tests using
bundle exec rake
I have run CF Acceptance Tests