On Julia 1.6.6 I am constantly getting following ERROR at various stages (sometimes after ~500, sometimes after ~1500 files being downloaded) when trying to download a few thousand files:
ERROR: Operation too slow. Less than 1 bytes/sec transferred the last 20 seconds while requesting https://address
when executing:
for i in j
Downloads.download(url, output; timeout = 90)
end
I have never encountered anything like this before. It seems that the server with the source files is operating without any problems.
My questions are: How can I increase “the period of 20 seconds” to a larger value? Is it possible at all? Would you have any recommendations related to this problem?
Below I am providing more verbose info:
Downloading files: 83%|██████████████████████████▉ | ETA: 0:00:11
- Found bundle for host server.name: 0xcab63d0 [serially]
- Can not multiplex, even if we wanted to!
- Re-using existing connection! (#15) with host server.name
- Connected to server.address (server.ip) port 443 (#15)
GET /cgi-bin/file HTTP/1.1
Host: server.address
Accept: /
User-Agent: curl/7.73.0 julia/1.6
- Operation too slow. Less than 1 bytes/sec transferred the last 20 seconds
- Closing connection 15
ERROR: LoadError: Operation too slow. Less than 1 bytes/sec transferred the last 20 seconds while requesting https://server.address/cgi-bin/file
Stacktrace:
[1] (::Downloads.var"#9#18"{IOStream, Base.DevNull, Nothing, Vector{Pair{String, String}}, Int64, Nothing, Bool, Bool, String, Int64, Bool, Bool})(easy::Downloads.Curl.Easy)
@ Downloads /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Downloads/src/Downloads.jl:369
[2] with_handle(f::Downloads.var"#9#18"{IOStream, Base.DevNull, Nothing, Vector{Pair{String, String}}, Int64, Nothing, Bool, Bool, String, Int64, Bool, Bool}, handle::Downloads.Curl.Easy)
@ Downloads.Curl /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Downloads/src/Curl/Curl.jl:64
[3] #8
@ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Downloads/src/Downloads.jl:311 [inlined]
[4] arg_write(f::Downloads.var"#8#17"{Base.DevNull, Nothing, Vector{Pair{String, String}}, Int64, Nothing, Bool, Bool, String, Int64, Bool, Bool}, arg::IOStream)
@ ArgTools /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/ArgTools/src/ArgTools.jl:112
[5] #7
@ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Downloads/src/Downloads.jl:310 [inlined]
[6] arg_read
@ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/ArgTools/src/ArgTools.jl:61 [inlined]
[7] request(url::String; input::Nothing, output::IOStream, method::Nothing, headers::Vector{Pair{String, String}}, timeout::Int64, progress::Nothing, verbose::Bool, throw::Bool, downloader::Nothing)
@ Downloads /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Downloads/src/Downloads.jl:309
[8] (::Downloads.var"#3#4"{Nothing, Vector{Pair{String, String}}, Int64, Nothing, Bool, Nothing, String})(output::IOStream)
@ Downloads /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Downloads/src/Downloads.jl:222
[9] open(f::Downloads.var"#3#4"{Nothing, Vector{Pair{String, String}}, Int64, Nothing, Bool, Nothing, String}, args::String; kwargs::Base.Iterators.Pairs{Symbol, Bool, Tuple{Symbol}, NamedTuple{(:write,), Tuple{Bool}}})
@ Base ./io.jl:330
[10] arg_write(f::Function, arg::String)
@ ArgTools /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/ArgTools/src/ArgTools.jl:86
[11] download#2
@ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Downloads/src/Downloads.jl:221 [inlined]
[12] macro expansion
@ ~/data/destination/code.jl:386 [inlined]
[13] macro expansion
@ ~/.julia/packages/ProgressMeter/sN2xr/src/ProgressMeter.jl:938 [inlined]
[14] top-level scope
@ ~/data/destination/code.jl:385
in expression starting at /home/user/data/nomads_julia/code.jl:377