aws-beam/aws-elixir

AWS.S3.get_object always returns {:error, :timeout} with hackney > 1.18.1

Closed this issue · 5 comments

adonig commented

I recently upgraded hackney from 1.18.1 to 1.19.1 and suddenly calls to AWS.S3.get_object started to return {:error, :timeout}. I tried 1.19.0 and 1.18.2 but still got the same error. When I went back to 1.18.1 everything started to work again. So currently I have to fix my hackney version in mix.exs to 1.18.1 or aws-elixir stops working.

Environment:

elixir 1.15.6-otp-26
erlang 26.1
aws-elixir 0.13.3
Fedora Linux 38

I recently had a discussion with a colleague regarding timeouts and the configuration of Hackney in lights of aws_erlang/aws-elixir. Could you try to run with 1.18.2 or 1.19.0 but pass the following as options:

[{:recv_timeout, :timer.seconds(1)}, 
 {:connect_timeout, :undefined},
 {:checkout_timeout, :undefined}
]

I'm curious to see if anything non-obvious related to timeouts changed in recent versions of Hackney.

(I apolagize for the delay in answering you btw!)

@adonig Did my suggestion fix your issue? If so, can we close this? I can't find anything in hackney which caused this change in behaviour but if my suggestion fixes the issue, perhaps we can close this?

@onno-vos-dev I didn't try it. I just left the version of hackney fixed because it wasn't that big of an issue. If you want, we can close this issue.

I'm still seeing this same timeout problem with Hackney "1.20.1".

I changed my client to Finch and I wasn't able to reproduce the timeout.