Unable to automatically install 'OpenSpecFun' when trying to add 'Symbolics'

The problem is very much related to this one and this one, so I suppose it’s also a good idea to try to poke @giordano.

TLDR: When trying to install Symbolics I get the following error:

ERROR: Unable to automatically install 'OpenSpecFun' from '/home/myusername/.julia/packages/OpenSpecFun_jll/Xw8XK/Artifacts.toml'

More details:

  1. I am using Julia 1.4.2 (installed with jill) on a Linux (Debian) machine via remote access using SSH:
Julia Version 1.4.2
Commit 44fa15b150* (2020-05-23 18:35 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-8.0.1 (ORCJIT, skylake)
  1. I am behind my university’s proxy, which caused me some pain in the neck with LibGit2. But once I added “missing” trailing slashes to my proxy environment variables I could finally start adding packages (in julia-1.1.1, everything worked fine from the very beginning). E.g., I could install HCubature and DataFrames without any problem.

  2. However, when trying to add Symbolics I get the following error:

ERROR: Unable to automatically install 'OpenSpecFun' from '/home/myusername/.julia/packages/OpenSpecFun_jll/Xw8XK/Artifacts.toml'
  • As was always asked in the aforementioned threads, I present the result of debug_artifact("OpenSpecFun"):
 ...
[ Info: Probing for download engine...
[ Info: Probing curl as a possibility...
[ Info:   Probe successful for curl
[ Info: Found download engine curl
[ Info: Probing for compression engine...
[ Info: Probing tar as a possibility...
[ Info:   Probe successful for tar
[ Info: Found compression engine tar
[ Info: Downloading Artifacts.toml to /home/anotheruser/tmp/jl_w68qT2/Artifacts.toml...
-=O=-     #    #    #    #
curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection timed out
ERROR: Could not download https://raw.githubusercontent.com/JuliaBinaryWrappers/OpenSpecFun_jll.jl/master/Artifacts.toml to /home/anotheruser/tmp/jl_w68qT2/Artifacts.toml:
ProcessFailedException(Base.Process[Process(`curl -C - '-#' -f -o /home/anotheruser/tmp/jl_w68qT2/Artifacts.toml -L https://raw.githubusercontent.com/JuliaBinaryWrappers/OpenSpecFun_jll.jl/master/Artifacts.toml`, ProcessExited(7))])

Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] download(::String, ::String; verbose::Bool, auth_header::Nothing) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.4/Pkg/src/PlatformEngines.jl:853
 [3] (::DebugArtifacts.var"#3#4"{String,Pkg.BinaryPlatforms.Linux,String})(::String) at /home/myusername/.julia/packages/DebugArtifacts/VcVh2/src/DebugArtifacts.jl:57
 [4] mktempdir(::DebugArtifacts.var"#3#4"{String,Pkg.BinaryPlatforms.Linux,String}, ::String; prefix::String) at ./file.jl:682
 [5] mktempdir at ./file.jl:680 [inlined] (repeats 2 times)
 [6] debug_artifact(::String, ::Pkg.BinaryPlatforms.Linux) at /home/myusername/.julia/packages/DebugArtifacts/VcVh2/src/DebugArtifacts.jl:53
 [7] debug_artifact(::String) at /home/myusername/.julia/packages/DebugArtifacts/VcVh2/src/DebugArtifacts.jl:43
 [8] top-level scope at REPL[2]:1
caused by [exception 1]
failed process: Process(`curl -C - '-#' -f -o /home/anotheruser/tmp/jl_w68qT2/Artifacts.toml -L https://raw.githubusercontent.com/JuliaBinaryWrappers/OpenSpecFun_jll.jl/master/Artifacts.toml`, ProcessExited(7)) [7]

So, as expected, there is some problem with curl.

  • Also, as had been suggested in one of the threads, I tried to add another package server,
export JULIA_PKG_SERVER=https://geo.pkg.julialang.org

but that didn’t help.

  • My umask is 0022.

  • Finally, as advised to the OP in this thread, I tried to run

for a in artifacts["OpenSpecFun"]
           for dl in a["download"]
               dir = mktempdir()
               @assert Pkg.PlatformEngines.download_verify_unpack(dl["url"], dl["sha256"], dir; ignore_existence=true, verbose=true)
               treehash = bytes2hex(Pkg.GitTools.tree_hash(dir))
               treehash == a["git-tree-sha1"] || error("hash mismatch!")
           end
       end

for additional testing, but it doesn’t seem to do anything (I had to terminate the process after ca. 5-10 minutes of nothing happening).

Please let me know if I should provide some additional info and/or if I maybe should ask something in my IT department.

P.S. As you could have probably already guessed, I am not the most tech savvy-guy. As much as I try to get what’s actually going on, quite often I don’t really understand. On the other hand, I most certainly don’t want to fiddle with any safety protocols and such without my IT department’s permission. So if you suggest something that I should probably ask my IT deparment about before doing, I will much appreciate if you let me know in advance. :slight_smile:

Can you please try with the latest stable version (v1.6.1 at the moment)?

1 Like

I tired to update it using, once again, jill,

jill install --upgrade

but as usual something didn’t work:

...
OSError: [Errno 101] Network is unreachable
...
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='julialang-s3.julialang.org', port=443): Max retries exceeded with url: /bin/versions.json (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7fcada56c9e8>: Failed to establish a new connection: [Errno 101] Network is unreachable',))

For some reason, I don’t seem to be able to reach servers:

> jill upstream
Found 5 release sources:

- Official: Julialang.org
  * julialang-s3.julialang.org (2000 ms)
  * julialangnightlies-s3.julialang.org (2000 ms)
- BFSU: Beijing Foreign Studies University
  * mirrors.bfsu.edu.cn (2000 ms)
- TUNA: Tsinghua University TUNA Association
  * mirrors.tuna.tsinghua.edu.cn (2000 ms)
  * opentuna.cn (2000 ms)
- USTC: University of Science and Technology of China
  * mirrors.ustc.edu.cn (2000 ms)
- SJTUG: Shanghai Jiao Tong University Linux User Group
  * mirrors.sjtug.sjtu.edu.cn (2000 ms)

(even though I somehow managed to install julia using jill before…)

I reckon I should probably start a separate thread on this issue or try to install the latest version manually.

I suspect to know the answer at this point, but are you able to download Julia simply from Download Julia?

Yes, I am:

2021-05-11 09:29:27 (11.2 MB/s) - ‘julia-1.6.1-linux-x86_64.tar.gz’ saved [112784227/112784227]

Then you can just use that one, no? :slightly_smiling_face:

3 Likes

Fair enough. :slight_smile:

Okay, with 1.6.1 being installed things have changed somewhat:

(@v1.6) pkg> add Symbolics
   Resolving package versions...
   Installed Latexify ──────── v0.15.5
   Installed SymbolicUtils ─── v0.11.2
   Installed Symbolics ─────── v0.1.25
   Installed OpenSpecFun_jll ─ v0.5.4+0
   Installed Rmath ─────────── v0.7.0
   Installed Rmath_jll ─────── v0.3.0+0
  Downloaded artifact: Rmath
  Downloaded artifact: Rmath
ERROR: Unable to automatically install 'Rmath' from '/home/myusername/.julia/packages/Rmath_jll/ss2ik/Artifacts.toml'

Stacktrace:
  [1] error(s::String)
...

Result of running debug_artifact("Rmath"):

julia> debug_artifact("Rmath")
[ Info: Platform: Linux x86_64 {cxxstring_abi=cxx11, julia_version=1.6.1, libc=glibc, libgfortran_version=4.0.0}
Julia Version 1.6.1
Commit 6aaedecc44 (2021-04-23 05:59 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-11.0.1 (ORCJIT, skylake)

[ Info: Downloading Artifacts.toml to /home/anotheruser/tmp/jl_mAr3T3/Artifacts.toml...
ERROR: Failed to connect to raw.githubusercontent.com port 443: Connection timed out while requesting https://raw.githubusercontent.com/JuliaBinaryWrappers/Rmath_jll.jl/master/Artifacts.toml
Stacktrace:
  [1] (::Downloads.var"#9#18"{IOStream, Base.DevNull, Nothing, Vector{Pair{String, String}}, Float64, Downloads.var"#24#27"{Pkg.PlatformEngines.var"#13#15"{Base.TTY}}, Bool, Bool, String, Int64, Bool, Bool})(easy::Downloads.Curl.Easy)
...

Unfortunately I’m not sure DebugArtifacts.jl is very reliable for debugging this kind of issues with Julia v1.6, as the download stack changed a lot

By the by, could that be relevant?

> which curl
/usr/bin/anaconda3/bin/curl

Why is Symbolics installing OpenSpecFun?

Why? Since I am not involved with Symbloics, I don’t know. I mean, Symbolics is a CAS which, among other features, includes

So it sort of natural that it might need packages that provide special functions. Here it says that they are provided by SpecialFunctions, but is it that weird that it also installs some other library of special functions?

P.S. But the problem is not only with this package. When I try to add, e.g., JLD it also returns an error:

ERROR: Unable to automatically install 'Lz4' from '/home/myusername/.julia/packages/Lz4_jll/MNjBE/Artifacts.toml'
1 Like

Trying to summon @staticfloat or @StefanKarpinski in case they have ideas about how to debug these downloads errors, related to your proxy

1 Like

Hello Aleksandr;

Do you have trouble with installing packages in general, or is it specifically Rmath/OpenSpecFun? What environment variables did you set, and how did you set them? Can you show me the output of:

Downloads.download("http://pkg.julialang.org/meta", stdout; verbose=true)

As an example, here’s what I get:

**julia>** Downloads.download("http://pkg.julialang.org/meta", stdout; verbose=true);
* Trying 151.101.66.217:80...
* Connected to pkg.julialang.org (151.101.66.217) port 80 (#0)
> GET /meta HTTP/1.1
Host: pkg.julialang.org
Accept: */*
User-Agent: curl/7.73.0 julia/1.7
* Mark bundle as not supporting multiuse
< HTTP/1.1 301 NA (west) internal redirect trigger
< Server: Varnish
< Retry-After: 0
< Location: https://us-west.pkg.julialang.org/meta
< x-geo-continent: NA
< x-geo-country: US
< x-geo-region: WA
< Content-Length: 0
< Accept-Ranges: bytes
< Date: Tue, 11 May 2021 20:59:15 GMT
< Via: 1.1 varnish
< Connection: close
< X-Served-By: cache-sea4441-SEA
< X-Cache: HIT
< X-Cache-Hits: 0
< X-Timer: S1620766756.782582,VS0,VE0
<
* Closing connection 0
* Issue another request to this URL: 'https://us-west.pkg.julialang.org/meta'
* Trying 52.24.172.208:443...
* Connected to us-west.pkg.julialang.org (52.24.172.208) port 443 (#1)
* ALPN, offering http/1.1
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* Server certificate: us-west.pkg.julialang.org
* Server certificate: R3
* Server certificate: DST Root CA X3
> GET /meta HTTP/1.1
Host: us-west.pkg.julialang.org
Accept: */*
User-Agent: curl/7.73.0 julia/1.7
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: nginx/1.19.10
< Date: Tue, 11 May 2021 20:59:15 GMT
< Content-Type: application/json
< Content-Length: 321
< Connection: keep-alive
<
* Connection #1 to host us-west.pkg.julialang.org left intact
{"start_time":"2021-05-08T16:28:09.312","pkgserver_version":"0.2.0-bd2b1e78605028ab840f8f5988f969a7f5a1beda","pkgserver_url":"https://us-west.pkg.julialang.org","julia_version":"1.6.1","registry_watchdog_task":"started","last_registry_update":"2021-05-11T20:59:15.256","registry_update_task":"started","maxrss":399454208}
2 Likes

Hi!

Do you have trouble with installing packages in general, or is it specifically Rmath/OpenSpecFun?

I would say it’s somewhere in between: I could install, e.g., HCubature and DataFrames, but not JDL, Symbolics, and Plots.

What environment variables did you set, and how did you set them?

I apologize in advance if what I am about to say is nonsense as I am still confused with some concepts of Linux. I didn’t really set any environment variables myself (I am working on a uni’s machine, which I inherited from one of the previous group members). That being said, if I run prinenv as a standard user, I don’t see anything interesting. If, however, I run it as a superuser, I get, in particular:

ftp_proxy=ftp://proxy2.my.institu.te:2121/
http_proxy=http://proxy.my.institu.te:8080/
https_proxy=https://proxy.my.institu.te:8080/

I had to add trailing slashes myself directly in the .bashrc and .gitconfig manual because otherwise there was a problem with LibGit2 (at least for julia-1.4.6). I should mention, however, that I run julia as a standard user. Do superuser’s environment variables affect all other users? (Sorry for such trivial questions)

Can you show me the output of…

It gives an error (I had to terminate the process at some point, but it said “Immediate connect fail…” almost, well, immediately and then nothing happened for quite some time until I decide to terminate):

Downloads.download("http://pkg.julialang.org/meta", stdout; verbose=true)
*   Trying 151.101.14.217:80...
*   Trying 2a04:4e42:3::729:80...
* Immediate connect fail for 2a04:4e42:3::729: Network is unreachable
* connect to 151.101.14.217 port 80 failed: Connection timed out
* Failed to connect to pkg.julialang.org port 80: Connection timed out
* Closing connection 1
ERROR: Failed to connect to pkg.julialang.org port 80: Connection timed out while requesting http://pkg.julialang.org/meta
Stacktrace:
  [1] (::Downloads.var"#9#18"{Base.TTY, Base.DevNull, Nothing, Vector{Pair{String, String}}, Float64, 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:356
  [2] with_handle(f::Downloads.var"#9#18"{Base.TTY, Base.DevNull, Nothing, Vector{Pair{String, String}}, Float64, 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:60
  [3] #8
    @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Downloads/src/Downloads.jl:298 [inlined]
  [4] arg_write(f::Downloads.var"#8#17"{Base.DevNull, Nothing, Vector{Pair{String, String}}, Float64, Nothing, Bool, Bool, String, Int64, Bool, Bool}, arg::Base.TTY)
    @ 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:297 [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::Base.TTY, method::Nothing, headers::Vector{Pair{String, String}}, timeout::Float64, progress::Nothing, verbose::Bool, throw::Bool, downloader::Nothing)
    @ Downloads /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Downloads/src/Downloads.jl:296
  [8] (::Downloads.var"#3#4"{Nothing, Vector{Pair{String, String}}, Float64, Nothing, Bool, Nothing, String})(output::Base.TTY)
    @ Downloads /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Downloads/src/Downloads.jl:209
  [9] arg_write(f::Downloads.var"#3#4"{Nothing, Vector{Pair{String, String}}, Float64, Nothing, Bool, Nothing, String}, arg::Base.TTY)
    @ ArgTools /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/ArgTools/src/ArgTools.jl:112
 [10] #download#2
    @ /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.6/Downloads/src/Downloads.jl:208 [inlined]
 [11] top-level scope
    @ REPL[9]:1

I’ll jump in here to say that I am having a very similar problem with a fresh install v1.6.1 on a new machine. I was able to add Plots and Random, but I get essentially the same error when I try to install Convex:

   Resolving package versions...
  Downloaded artifact: Bzip2
  Downloaded artifact: Bzip2
ERROR: Unable to automatically install 'Bzip2' from 'C:\Users\me\.julia\packages\Bzip2_jll\aAOqr\Artifacts.toml'
Stacktrace:
  [1] error(s::String)
    @ Base .\error.jl:33
  [2] ensure_artifact_installed(name::String, meta::Dict{String, Any}, artifacts_toml::String; platform::Base.BinaryPlatforms.Platform, verbose::Bool, quiet_download::Bool, io::Base.TTY)
    @ Pkg.Artifacts C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Artifacts.jl:443
  [3] ensure_all_artifacts_installed(artifacts_toml::String; platform::Base.BinaryPlatforms.Platform, pkg_uuid::Nothing, include_lazy::Bool, verbose::Bool, quiet_download::Bool, io::Base.TTY)
    @ Pkg.Artifacts C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Artifacts.jl:508
  [4] download_artifacts(ctx::Pkg.Types.Context, pkg_roots::Vector{String}; platform::Base.BinaryPlatforms.Platform, verbose::Bool, io::Base.TTY)
    @ Pkg.Operations C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Operations.jl:706
  [5] download_artifacts(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; platform::Base.BinaryPlatforms.Platform, julia_version::VersionNumber, verbose::Bool, io::Base.TTY)
    @ Pkg.Operations C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Operations.jl:683
  [6] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}, new_git::Vector{Base.UUID}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform)
.BinaryPlatforms.Platform, kwargs::Base.Iterators.Pairs{Symbol, Base.TTY, Tuple{Symbol}, NamedTuple{(:io,), Tuple{Base.TTY}}})
    @ Pkg.API C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\API.jl:203
  [8] add(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.TTY, kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Pkg.API C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\API.jl:79
  [9] add(pkgs::Vector{Pkg.Types.PackageSpec})
    @ Pkg.API C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\API.jl:77
[10] do_cmd!(command::Pkg.REPLMode.Command, repl::REPL.LineEditREPL)
    @ Pkg.REPLMode C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\REPLMode\REPLMode.jl:408
[11] do_cmd(repl::REPL.LineEditREPL, input::String; do_rethrow::Bool)
    @ Pkg.REPLMode C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\REPLMode\REPLMode.jl:386
[12] do_cmd
    @ C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\REPLMode\REPLMode.jl:377 [inlined]
[13] (::Pkg.REPLMode.var"#24#27"{REPL.LineEditREPL, REPL.LineEdit.Prompt})(s::REPL.LineEdit.MIState, buf::IOBuffer, ok::Bool)
    @ Pkg.REPLMode C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\REPLMode\REPLMode.jl:550
[14] #invokelatest#2
    @ .\essentials.jl:708 [inlined]
[15] invokelatest
    @ .\essentials.jl:706 [inlined]
[16] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
    @ REPL.LineEdit C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\REPL\src\LineEdit.jl:2441
[17] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
    @ REPL C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\REPL\src\REPL.jl:1126
[18] (::REPL.var"#44#49"{REPL.LineEditREPL, REPL.REPLBackendRef})()
    @ REPL .\task.jl:411

I tried installing other packages at random, like ImageMagick, which merrily installs a bunch of stuff, but then fails also on OpenSpecFun, so it looks like it could be a package-specific issue. DataFrames installs just fine in its entirety for instance.

The error happens on a machine that is behind a proxy. On a different machine running v1.6.0, installing ImageMagick works, including OpenSpecFun.

Edit: the latter machine where OpenSpecFun does install is not behind a proxy. I’ll try upgrading to 1.6.1 to see if I can reproduce this.

I am not sure about the etiquette in replying to myself, but here is some more information. Adding JLD fails on the machine behind the proxy, but succeeds unproxied, both now on v1.6.1. I get same error as @Aleksandr_Mikheev.

@staticfloat The Download output you requested is in my case:

julia> Downloads.download(http://pkg.julialang.org/meta, stdout; verbose=true)
*   Trying 151.101.250.217:80...
* Connected to pkg.julialang.org (151.101.250.217) port 80 (#0)
> GET /meta HTTP/1.1
Host: pkg.julialang.org
Accept: */*
User-Agent: curl/7.73.0 julia/1.6
 

* Mark bundle as not supporting multiuse
< HTTP/1.1 301 NA (east2) internal redirect trigger
< Server: Varnish
< Retry-After: 0
< Location: https://us-east2.pkg.julialang.org/meta
< x-geo-continent: NA
< x-geo-country: US
< x-geo-region: MA
< Content-Length: 0
< Accept-Ranges: bytes
< Date: Wed, 12 May 2021 00:59:41 GMT
< Via: 1.1 varnish
< X-Served-By: cache-bwi5036-BWI
< X-Cache: HIT
< X-Cache-Hits: 0
< X-Timer: S1620781181.121862,VS0,VE0
< Connection: Keep-Alive
< X-BlueCoat-Authorization: 0224a55d95aae111=2DFD8CCE00000002yFae3+wVLL4rslRZZr7cyONjqonWcgAAAgAAAD9ztgEsAQAAAAAAAGGy6QAAAAAA
< Age: 0
< 

* Connection #0 to host pkg.julialang.org left intact
* Issue another request to this URL: 'https://us-east2.pkg.julialang.org/meta'
*   Trying 18.212.158.78:443...
* Connected to us-east2.pkg.julialang.org (18.212.158.78) port 443 (#1)
* schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate.
* Closing connection 1
* schannel: shutting down SSL/TLS connection with us-east2.pkg.julialang.org port 443
ERROR: HTTP/1.1 301 NA (east2) internal redirect trigger (schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - The revocation function was unable to check revocation for the certificate.) while requesting http://pkg.julialang.org/meta
Stacktrace:
  [1] (::Downloads.var"#9#18"{Base.TTY, Base.DevNull, Nothing, Vector{Pair{String, String}}, Float64, Nothing, Bool, Bool, String, Int64, Bool, Bool})(easy::Downloads.Curl.Easy)
    @ Downloads C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Downloads\src\Downloads.jl:356
  [2] with_handle(f::Downloads.var"#9#18"{Base.TTY, Base.DevNull, Nothing, Vector{Pair{String, String}}, Float64, Nothing, Bool, Bool, String, Int64, Bool, Bool}, handle::Downloads.Curl.Easy)
    @ Downloads.Curl C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Downloads\src\Curl\Curl.jl:60
  [3] #8
    @ C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Downloads\src\Downloads.jl:298 [inlined]
  [4] arg_write(f::Downloads.var"#8#17"{Base.DevNull, Nothing, Vector{Pair{String, String}}, Float64, Nothing, Bool, Bool, String, Int64, Bool, Bool}, arg::Base.TTY)
    @ ArgTools C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\ArgTools\src\ArgTools.jl:112
  [5] #7
    @ C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Downloads\src\Downloads.jl:297 [inlined]
  [6] arg_read
    @ C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\ArgTools\src\ArgTools.jl:61 [inlined]
  [7] request(url::String; input::Nothing, output::Base.TTY, method::Nothing, headers::Vector{Pair{String, String}}, timeout::Float64, progress::Nothing, verbose::Bool, throw::Bool, downloader::Nothing)
    @ Downloads C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Downloads\src\Downloads.jl:296
  [8] (::Downloads.var"#3#4"{Nothing, Vector{Pair{String, String}}, Float64, Nothing, Bool, Nothing, String})(output::Base.TTY)
    @ Downloads C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Downloads\src\Downloads.jl:209
  [9] arg_write(f::Downloads.var"#3#4"{Nothing, Vector{Pair{String, String}}, Float64, Nothing, Bool, Nothing, String}, arg::Base.TTY)
    @ ArgTools C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\ArgTools\src\ArgTools.jl:112
[10] #download#2
    @ C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Downloads\src\Downloads.jl:208 [inlined]
[11] top-level scope
    @ REPL[19]:1

Hope this helps in tracking it down!

Nope! And don’t worry, I understand that this can all be confusing the first time around. In this case, if printenv doesn’t show these variables, that’s not a good sign, because it means that Julia won’t see them either. So this is the first thing we should try to figure out; you need to figure out why your environment variables are not being set properly. I suggest putting something akin to:

export http_proxy=http://proxy.my.institu.te:8080/
export https_proxy=https://proxy.my.institu.te:8080/

Into your ~/.bashrc, and seeing if that does the trick. Be sure to close your terminal window and open a new one, so that you get a new terminal that has run those “startup” scripts, as they won’t take effect in that old terminal immediately. Use printenv | grep proxy to quickly double-check that it has taken effect.

While you’re doing that, you can also run those export commands directly in the terminal to set the environment variables in the current shell (the values will be lost as soon as you exit the shell) and then run julia. Can you do so and see if the behavior of the Downloads.download() call changes at all?

This looks an awful lot like problems with SSL host verification with proxy servers · Issue #108 · JuliaLang/Downloads.jl · GitHub. I believe the “issue” is that you have not added the proxy certificate to your machine’s certificate store. That is the best immediate solution, although it looks like Stefan has added a mitigation that may help with this and should be released in v1.6.2. You can try using that version by downloading a 1.6-latest build.

So I set these environment variables now also for my standard user:

> printenv | grep proxy
http_proxy=http://proxy.my.institu.te:8080/
https_proxy=https://proxy.my.institu.te:8080/

and the output of Downloads.download() has changed:

 Downloads.download("http://pkg.julialang.org/meta", stdout; verbose=true)
* Uses proxy env variable http_proxy == 'http://proxy.my.institu.te:8080/'
*   Trying ***.***.***.***:8080...
* Connected to proxy.my.institu.te (***.***.***.***) port 8080 (#0)
> GET http://pkg.julialang.org/meta HTTP/1.1
Host: pkg.julialang.org
Accept: */*
Proxy-Connection: Keep-Alive
User-Agent: curl/7.73.0 julia/1.6

* Mark bundle as not supporting multiuse
< HTTP/1.1 301 Moved Permanently
< Server: Varnish
< Retry-After: 0
< Location: https://eu-central.pkg.julialang.org/meta
< x-geo-continent: EU
< x-geo-country: DE
< x-geo-region: BW
< Content-Length: 0
< Accept-Ranges: bytes
< Date: Wed, 12 May 2021 11:33:19 GMT
< X-Served-By: cache-fra19121-FRA
< X-Cache: HIT
< X-Cache-Hits: 0
< X-Timer: S1620819199.366605,VS0,VE0
< X-Cache: MISS from proxy1.my.institu.te
< X-Cache-Lookup: MISS from proxy1.my.institu.te:3128
< Via: 1.1 varnish, 1.1 proxy1.my.institu.te (squid/4.6)
< Connection: keep-alive
<
* Connection #0 to host proxy.my.institu.te left intact
* Issue another request to this URL: 'https://eu-central.pkg.julialang.org/meta'
* Uses proxy env variable https_proxy == 'https://proxy.my.institu.te:8080/'
* Unsupported proxy 'https://proxy.my.institu.te:8080/', libcurl is built without the HTTPS-proxy support.
* Closing connection -1
ERROR: HTTP/1.1 301 Moved Permanently (Unsupported proxy 'https://proxy.my.institu.te:8080/', libcurl is built without the HTTPS-proxy support.) while requesting http://pkg.julialang.org/meta

Can you try un-setting https_proxy and only setting http_proxy and see if it still complains?