Timeouts in Julia 1.7.2 (due to setopt(easy, CURLOPT_LOW_SPEED_TIME, 20)
in new Downloads.jl) #22
Description
After upgrading from Julia 1.6.1 to Julia 1.7.2, I noticed that some of my requests would fail with
gRPCServiceCallException: 4, Deadline expired before the operation could complete
for tasks with a long response time.
The error persisted for any combination of request_timeout
and connection_timeout
values.
Setting maxage
did completely stall everything.
I believe that the error is due to a version jump of the "Downloads" package.
In my case it went from 1.4.0 to 1.5.2.
I think this line is responsible, which sets
setopt(easy, CURLOPT_LOW_SPEED_TIME, 20)
This seems to be due to JuliaLang/Downloads.jl#126 which was merged into all versions of Downloads >= 1.4.1.
I have put
Curl.setopt(easy, CURLOPT_LOW_SPEED_TIME, Clong(0))
at the beginning of set_connect_timeout()
in src/curl.jl and the error is gone.
So as a fix I would propose to expose the option as an additional keyword argument, i.e., low_speed_time
, with a default value of 0.
Activity