hexpm / bob

The Builder
247 stars 60 forks source link

Can't download elixir 1.14.4 from repo.hex.pm #160

Closed ilkka closed 1 year ago

ilkka commented 1 year ago

There's some persistent problem with 1.14.4, although I can download 1.14.3 just fine with the same machine, same network setup, everything. Here's curl output for 1.14.4:

$ curl -vvLO https://repo.hex.pm/builds/elixir/v1.14.4.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 151.101.2.2:443...
* Connected to repo.hex.pm (151.101.2.2) port 443 (#0)
* schannel: disabled automatic use of client certificate
* ALPN: offers http/1.1
* ALPN: server accepted http/1.1
* using HTTP/1.1
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0> GET /builds/elixir/v1.14.4.zip HTTP/1.1
> Host: repo.hex.pm
> User-Agent: curl/8.0.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Connection: keep-alive
< Content-Length: 6637329
< x-amz-id-2: 0WT0Fg06Y0FyB9oMpo8Id2L7C9OaWu/DqsZ5EtYEvBqkPJNotocaedv8/iaezZIk7+aKYRPn+dw=
< x-amz-request-id: 1EDVXY0DE7WBQN9E
< Last-Modified: Tue, 16 May 2023 13:24:21 GMT
< ETag: "036361092ec3a4b701901ee70bf9cee1"
< x-amz-server-side-encryption: AES256
< Cache-Control: public,max-age=3600
< x-amz-meta-surrogate-control: public,max-age=604800
< x-amz-meta-surrogate-key: elixir-builds/${version}/${2}
< x-amz-version-id: 0pYuTYlCRrSE1AfWaJW88El23uBnllFN
< Content-Type: application/zip
< Server: AmazonS3
< Accept-Ranges: bytes
< Date: Thu, 18 May 2023 09:01:42 GMT
< Via: 1.1 varnish
< Age: 0
< X-Served-By: cache-iad-kiad7000176-IAD, cache-hel1410024-HEL
< X-Cache: HIT, MISS
< X-Cache-Hits: 2, 0
< X-Timer: S1684400503.721569,VS0,VE97
<
{ [19126 bytes data]
* schannel: failed to decrypt data, need more data
{ [5416 bytes data]
* schannel: failed to decrypt data, need more data
* schannel: failed to decrypt data, need more data
* schannel: failed to decrypt data, need more data
{ [16384 bytes data]
* schannel: failed to decrypt data, need more data
* schannel: failed to decrypt data, need more data
[...]
{ [16384 bytes data]
* schannel: failed to decrypt data, need more data
* schannel: failed to decrypt data, need more data
{ [79488 bytes data]
* schannel: server closed the connection
* transfer closed with 2443025 bytes remaining to read
 63 6481k   63 4096k    0     0  2910k      0  0:00:02  0:00:01  0:00:01 2911k
* Closing connection 0
* schannel: shutting down SSL/TLS connection with repo.hex.pm port 443
curl: (18) transfer closed with 2443025 bytes remaining to read
wojtekmach commented 1 year ago

I also got an error:

$ curl -vvLO https://repo.hex.pm/builds/elixir/v1.14.4.zip
(...)
< content-length: 6637329
<
{ [1386 bytes data]
 34 6481k   34 2255k    0     0   569k      0  0:00:11  0:00:03  0:00:08  569k* HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)
 63 6481k   63 4096k    0     0   853k      0  0:00:07  0:00:04  0:00:03  854k
* Connection #0 to host repo.hex.pm left intact
curl: (92) HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)

FWIW, it works on the builds.hex.pm domain (New domain for build artifacts):

$ curl -LO https://builds.hex.pm/builds/elixir/v1.14.4.zip
(...)
<
{ [1394 bytes data]
100 6312k  100 6312k    0     0  4829k      0  0:00:01  0:00:01 --:--:-- 4848k
* Connection #0 to host builds.hex.pm left intact
ericmj commented 1 year ago

It looks like our CDN is having some intermittent issues in a few POPs. I will monitor but unfortunately there isn't much we can do from our end.

ilkka commented 1 year ago

Alrighty, thanks for the info! And thanks @wojtekmach for the pointer about the new domain, I'll make a PR towards scoop to get that changed there.

ericmj commented 1 year ago

See https://hex.pm/blog/new-domain-for-build-artifacts for more details about the new domain.

I can't reproduce the error with repo.hex.pm anymore so I will close. If it persists for longer please let us know.

jonatanklosko commented 1 year ago

Seems to have happened again:

$ curl --output file.zip https://builds.hex.pm/builds/elixir/main.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
 15 6661k   15 1024k    0     0   869k      0  0:00:07  0:00:01  0:00:06  874k
curl: (92) HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)
Verbose

``` $ curl -vvLO https://builds.hex.pm/builds/elixir/main.zip % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying 199.232.17.91:443... * Connected to builds.hex.pm (199.232.17.91) port 443 (#0) * ALPN: offers h2 * ALPN: offers http/1.1 * CAfile: /etc/ssl/cert.pem * CApath: none * [CONN-0-0][CF-SSL] (304) (OUT), TLS handshake, Client hello (1): } [318 bytes data] * [CONN-0-0][CF-SSL] (304) (IN), TLS handshake, Server hello (2): { [122 bytes data] * [CONN-0-0][CF-SSL] (304) (IN), TLS handshake, Unknown (8): { [19 bytes data] * [CONN-0-0][CF-SSL] (304) (IN), TLS handshake, Certificate (11): { [4024 bytes data] * [CONN-0-0][CF-SSL] (304) (IN), TLS handshake, CERT verify (15): { [264 bytes data] * [CONN-0-0][CF-SSL] (304) (IN), TLS handshake, Finished (20): { [36 bytes data] * [CONN-0-0][CF-SSL] (304) (OUT), TLS handshake, Finished (20): } [36 bytes data] * SSL connection using TLSv1.3 / AEAD-CHACHA20-POLY1305-SHA256 * ALPN: server accepted h2 * Server certificate: * subject: CN=builds.hex.pm * start date: Apr 29 14:56:11 2023 GMT * expire date: Jul 28 14:56:10 2023 GMT * subjectAltName: host "builds.hex.pm" matched cert's "builds.hex.pm" * issuer: C=US; O=Let's Encrypt; CN=R3 * SSL certificate verify ok. * Using HTTP2, server supports multiplexing * Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0 * h2h3 [:method: GET] * h2h3 [:path: /builds/elixir/main.zip] * h2h3 [:scheme: https] * h2h3 [:authority: builds.hex.pm] * h2h3 [user-agent: curl/7.87.0] * h2h3 [accept: */*] * Using Stream ID: 1 (easy handle 0x146011400) > GET /builds/elixir/main.zip HTTP/2 > Host: builds.hex.pm > user-agent: curl/7.87.0 > accept: */* > < HTTP/2 200 < x-amz-id-2: Q3nJV0/yFI44Vnkx6zw46/NK/bh1JwzXfSbKeft2D01LfmKZ+h2g9j+IjmrqSRD0PRTKdhNqVCo= < x-amz-request-id: XHM82RAJE2KE86JE < last-modified: Fri, 26 May 2023 10:52:44 GMT < etag: "9b7b026d529fd9fab04f72c136ae500e" < x-amz-server-side-encryption: AES256 < cache-control: public,max-age=3600 < x-amz-meta-surrogate-control: public,max-age=604800 < x-amz-meta-surrogate-key: builds builds/elixir builds/elixir/main < x-amz-version-id: BL5C0QeJDVZ5gCki3d0Pga0k61KqTUYc < content-type: application/zip < server: AmazonS3 < accept-ranges: bytes < date: Fri, 26 May 2023 15:05:28 GMT < via: 1.1 varnish < age: 0 < x-served-by: cache-iad-kcgs7200054-IAD, cache-vie6342-VIE < x-cache: HIT, MISS < x-cache-hits: 6, 0 < x-timer: S1685113528.158008,VS0,VE98 < content-length: 6820902 < { [1403 bytes data] * HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1) 15 6661k 15 1024k 0 0 1605k 0 0:00:04 --:--:-- 0:00:04 1620k * Connection #0 to host builds.hex.pm left intact curl: (92) HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1) ```

wojtekmach commented 1 year ago

problems with fastly apparently. this would hit the origin:

$ curl -LO "https://builds.hex.pm/builds/elixir/main.zip?0"
jonatanklosko commented 1 year ago

@wojtekmach thanks, this actually worked for what I needed :D