You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
There were existing tests for request timeout handling. There's now a test for connect timeouts, which runs successfully.
Actually from CURL docs it seems that the default value of CURLOPT_LOW_SPEED_TIME and CURLOPT_LOW_SPEED_LIMIT are 0, meaning that they are disabled. So the only timeout that should be effective is the request_timeout (and connection_timeout if connect is slow). So looks like it is not necessary to specify these to get the behavior we need.
I believe the actual issue here was something else, most likely what got fixed by #26
After upgrading from Julia 1.6.1 to Julia 1.7.2, I noticed that some of my requests would fail with
for tasks with a long response time.
The error persisted for any combination of
request_timeout
andconnection_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
This seems to be due to JuliaLang/Downloads.jl#126 which was merged into all versions of Downloads >= 1.4.1.
I have put
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.The text was updated successfully, but these errors were encountered: