From nobody Wed Jan 14 16:09:32 2026 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4drrfZ5bMxz6Nbvn for ; Wed, 14 Jan 2026 16:09:42 +0000 (UTC) (envelope-from ronald-lists@klop.ws) Received: from smtp-relay-int.realworks.nl (smtp-relay-int.realworks.nl [31.134.205.98]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4drrfZ19mWz3D9B for ; Wed, 14 Jan 2026 16:09:41 +0000 (UTC) (envelope-from ronald-lists@klop.ws) Authentication-Results: mx1.freebsd.org; none Received: from crmpreview8.colo2.realworks.nl (localhost [127.0.0.1]) by crmpreview8.colo2.realworks.nl (Postfix) with ESMTP id 0EE972C02D5; Wed, 14 Jan 2026 17:09:32 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=klop.ws; s=rw2; t=1768406973; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=N9EPMMCmO7TwQTntKeV2B9cJg+n2AUldb6kNkRK4T90=; b=o2MRNU+5fwXq0Zqj6r+qiWJimnl4y4Vx0hHhCZMKc4r1xuPxPr9c/nDqg+Kf+x9vYNWMyk lVs2x2XG8/4tIDqw9BpoA8YZv7hUrJMlShl5g9VnMOMuAVO8zZbYIyUHiquXx7GMrYy7QJ 1F2DRBG9asQ8REtVAgE0GHKDK60hMoBjtII4yNf+sBQaC9ES9/ufq1MeL/NmYDBb51GXPX jW362DMAOpT4MkuvY09ooRiFnLHvGBlXG/WsQkefTi+zhHkCbQMyMAOT0fgSBtq5jUGsSE 7ot+oTbGsyvYiu7A/LvI/InGJGrUlUVBhXmXPWAAyMwpBz0lNxbdoWhViLUBfQ== Date: Wed, 14 Jan 2026 17:09:32 +0100 (CET) From: Ronald Klop To: ruby R53 Cc: Current FreeBSD Message-ID: <1541007573.1910.1768406972044@localhost> In-Reply-To: <9Qp2LaDX-QG6aXtsRcjekPDWOjni9Cy4LLmza8jhB2cD15_VfdTY7znjCzIClM1qtEhVuK4P_cL1yKl8AMJZ3m8UnE3EEC67polveeC_Zys=@proton.me> References: <1503278086.9.1768374682910@localhost> <9Qp2LaDX-QG6aXtsRcjekPDWOjni9Cy4LLmza8jhB2cD15_VfdTY7znjCzIClM1qtEhVuK4P_cL1yKl8AMJZ3m8UnE3EEC67polveeC_Zys=@proton.me> Subject: Re: Change fetch addresses for Rust crates, Python packages and whatnot? List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_1909_875771080.1768406971962" X-Mailer: Realworks (778.35) Importance: Normal X-Priority: 3 (Normal) X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:51088, ipnet:31.134.200.0/21, country:NL] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Rspamd-Queue-Id: 4drrfZ19mWz3D9B ------=_Part_1909_875771080.1768406971962 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Van: ruby R53 Datum: woensdag, 14 januari 2026 15:41 Aan: Ronald Klop , Current FreeBSD Onderwerp: Re: Change fetch addresses for Rust crates, Python packages and = whatnot? >=20 > On Wednesday, January 14th, 2026 at 4:11 AM, Ronald Klop wrote: >=20 > > > > > > Van: ruby R53 > > Datum: woensdag, 14 januari 2026 03:26 > > Aan: freebsd-current@freebsd.org > > Onderwerp: Change fetch addresses for Rust crates, Python packages and = whatnot? > > > > > I've been trying to compile www/chromium for literal days now, all be= cause whenever `make` runs `fetch`, it goes to an address that's actually s= upposed to redirect to another one, but `fetch` instead keeps trying for a = whole minute until it ultimately falls back to distcache.freebsd.org, which= is another whole minute of waiting for the file to download. The cherry on= top is that the file is, most of the time, just hundreds of kilobytes in s= ize. > > > > > > Hell, I even had to manually download part of these individual files = using that Links web browser=C2=B7=C2=B7=C2=B7 it'd do it a lot faster than= `fetch`, all because it actually followed the redirection and didn't just = keep trying over and over. But of course I wouldn't manually download hundr= eds upon hundreds of archive files, this is the reason why such tool exists= . > > > > > > So here's an example: currently one of the missing dependencies for w= ww/chromium is GTK3, which depends on graphics/librsvg2-rust, which then de= pends on cargo-c. It's now trying to fetch dunce-1.0.5.crate, which is one = of the crates required for it, from https://crates.io/api/v1/crates/dunce/1= .0.5/download?dummy=3D/rust/crates/dunce-1.0.5.crate. Running `curl` on thi= s link does literally nothing, no files are downloaded. But running it on a= ny web browser instantly downloads the crate in question, all because that = link actually redirects to https://static.crates.io/crates/dunce/dunce-1.0.= 5.crate. Even `curl`ing that new link does give the file I want. Same appli= es for Python packages. > > > > > > Now imagine this for all the remaining files=C2=B7=C2=B7=C2=B7 if it = takes about 2 minutes to download a single file, and there's 398 crate entr= ies on cargo-c's `Makefile.crates`, that means it'd take a whole 796 minute= s to download everything, which is literally more than half a day (~13.6 ho= urs) :) > > > =20 > > > > > > > > Can you copy-paste the output of the following command in a reply? > > fetch -vv "https://crates.io/api/v1/crates/dunce/1.0.5/download?dummy= =3D/rust/crates/dunce-1.0.5.crate" > > > > For me it immediately follows the redirect and downloads the file in ha= lf a second. See the output below. > > > > Regards, > > Ronald. > > > > > > --=20 > > > > time fetch -vv "https://crates.io/api/v1/crates/dunce/1.0.5/download?du= mmy=3D/rust/crates/dunce-1.0.5.crate" > > scheme: "https" > > user: "" > > password: "" > > host: "crates.io" > > port: "0" > > document: "/api/v1/crates/dunce/1.0.5/download?dummy=3D/rust/crates/dun= ce-1.0.5.crate" > > ---> crates.io:443 > > resolving server address: crates.io:443 > > SSL options: 82004850 > > Peer verification enabled > > Using OpenSSL default CA cert file and path > > Verify hostname > > TLSv1.3 connection established using TLS_AES_128_GCM_SHA256 > > Certificate subject: /CN=3Dcrates.io > > Certificate issuer: /C=3DUS/O=3DAmazon/CN=3DAmazon RSA 2048 M01 > > requesting https://crates.io/api/v1/crates/dunce/1.0.5/download?dummy= =3D/rust/crates/dunce-1.0.5.crate > > >>> GET /api/v1/crates/dunce/1.0.5/download?dummy=3D/rust/crates/dunce-= 1.0.5.crate HTTP/1.1 > > >>> Host: crates.io > > >>> Accept: */* > > >>> User-Agent: fetch libfetch/2.0 > > >>> Connection: close > > >>> > > <<< HTTP/1.1 302 Moved Temporarily > > <<< Content-Length: 0 > > <<< Connection: close > > content length: [0] > > <<< Access-Control-Allow-Origin: * > > <<< Date: Wed, 14 Jan 2026 07:10:06 GMT > > <<< Location: https://static.crates.io/crates/dunce/dunce-1.0.5.crate > > <<< Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age"= :3600,"success_fraction":0.01,"failure_fraction":0.1} > > 302 redirect to https://static.crates.io/crates/dunce/dunce-1.0.5.crate > > scheme: "https" > > user: "" > > password: "" > > host: "static.crates.io" > > port: "0" > > document: "/crates/dunce/dunce-1.0.5.crate" > > <<< Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.h= eroku.com/reports?s=3DVOwdWzeBall4rSiByZHUwCe6zIbVFdxy%2FIgcGEUOIZo%3D\u002= 6sid=3Daf571f24-03ee-46d1-9f90-ab9030c2c74c\u0026ts=3D1768374606"}],"max_ag= e":3600} > > <<< Reporting-Endpoints: heroku-nel=3D"https://nel.heroku.com/reports?s= =3DVOwdWzeBall4rSiByZHUwCe6zIbVFdxy%2FIgcGEUOIZo%3D&sid=3Daf571f24-03ee-46d= 1-9f90-ab9030c2c74c&ts=3D1768374606" > > <<< Server: Heroku > > <<< Strict-Transport-Security: max-age=3D31536000; includeSubDomains > > <<< Via: 1.1 heroku-router, 1.1 c2905f891f96a0ec9c7fab16916dbb46.cloudf= ront.net (CloudFront) > > <<< X-Cache: Miss from cloudfront > > <<< X-Amz-Cf-Pop: AMS58-P6 > > <<< X-Amz-Cf-Id: Xa10pwbYp4MCA5eToVa0shahNpzr2epWFUuQZS63bMpmbiDLKc2dmQ= =3D=3D > > <<< > > ---> static.crates.io:443 > > resolving server address: static.crates.io:443 > > SSL options: 82004850 > > Peer verification enabled > > Using OpenSSL default CA cert file and path > > Verify hostname > > TLSv1.3 connection established using TLS_AES_128_GCM_SHA256 > > Certificate subject: /CN=3Dstatic.crates.io > > Certificate issuer: /C=3DBE/O=3DGlobalSign nv-sa/CN=3DGlobalSign Atlas = R3 DV TLS CA 2025 Q3 > > requesting https://static.crates.io/crates/dunce/dunce-1.0.5.crate > > >>> GET /crates/dunce/dunce-1.0.5.crate HTTP/1.1 > > >>> Host: static.crates.io > > >>> Accept: */* > > >>> User-Agent: fetch libfetch/2.0 > > >>> Connection: close > > >>> > > <<< HTTP/1.1 200 > > <<< Connection: close > > <<< Content-Length: 8244 > > <<< etag: "198d7f7c37f632bc83502b28870b6d60" > > content length: [8244] > > <<< cache-control: public,max-age=3D31536000,immutable > > <<< x-amz-version-id: PO7xZdimM08F9npIqG8PYtpqpEuWdV9D > > <<< x-amz-id-2: Dj7mFoaqQJUc61mB1FcouUQcy0tajnacJvU+xOR3Be5//jo3GaSmdCw= SSgtYyDMnYE4cPCiPv7PV9m7z1Jk0WazYHTFPbYhm > > <<< x-amz-request-id: KWXPQ4JP20HSYSY2 > > <<< date: Wed, 14 Jan 2026 00:09:56 GMT > > <<< x-amz-server-side-encryption: AES256 > > <<< x-amz-replication-status: COMPLETED > > <<< last-modified: Sun, 04 Aug 2024 01:36:47 GMT > > <<< accept-ranges: bytes > > last modified: [2024-08-04 01:36:47] > > <<< content-type: application/gzip > > <<< x-served-by: cache-ams21058-AMS > > <<< server: AmazonS3 > > <<< age: 25212 > > <<< x-cache: HIT > > <<< x-cache-hits: 148 > > <<< > > offset 0, length -1, size -1, clength 8244 > > local size / mtime: 8244 / 1722735407 > > remote size / mtime: 8244 / 1722735407 > > dunce-1.0.5.crate 8244 B 10 MBps= 00s > > > > real 0m0.429s > > user 0m0.023s > > sys 0m0.027s >=20 > ``` > # time fetch -vv "https://crates.io/api/v1/crates/dunce/1.0.5/download?du= mmy=3D/rust/crates/dunce-1.0.5.crate" > scheme: "https" > user: "" > password: "" > host: "crates.io" > port: "0" > document: "/api/v1/crates/dunce/1.0.5/download?dummy=3D/rust/crates/dunce= -1.0.5.crate" > ---> crates.io:443 > resolving server address: crates.io:443 (<- it gets stuck here for like a= minute) > SSL options: 82004850 > Peer verification enabled > Using OpenSSL default CA cert file and path > Verify hostname > TLSv1.3 connection established using TLS_AES_128_GCM_SHA256 > Certificate subject: /CN=3Dcrates.io > Certificate issuer: /C=3DUS/O=3DAmazon/CN=3DAmazon RSA 2048 M01 > requesting https://crates.io/api/v1/crates/dunce/1.0.5/download?dummy=3D/= rust/crates/dunce-1.0.5.crate > >>> GET /api/v1/crates/dunce/1.0.5/download?dummy=3D/rust/crates/dunce-1.= 0.5.crate HTTP/1.1 > >>> Host: crates.io > >>> Accept: */* > >>> User-Agent: fetch libfetch/2.0 > >>> Connection: close > >>> > <<< HTTP/1.1 302 Moved Temporarily > <<< Content-Length: 0 > <<< Connection: close > content length: [0] > <<< Access-Control-Allow-Origin: * > <<< Date: Wed, 14 Jan 2026 14:34:21 GMT > <<< Location: https://static.crates.io/crates/dunce/dunce-1.0.5.crate > <<< Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max_age":3= 600,"success_fraction":0.01,"failure_fraction":0.1} > 302 redirect to https://static.crates.io/crates/dunce/dunce-1.0.5.crate > scheme: "https" > user: "" > password: "" > host: "static.crates.io" > port: "0" > document: "/crates/dunce/dunce-1.0.5.crate" > <<< Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.her= oku.com/reports?s=3D9t0rqIH4lMlfE9ncVibRPy8hCUlMqBmippMeWunG5M0%3D\u0026sid= =3Daf571f24-03ee-46d1-9f90-ab9030c2c74c\u0026ts=3D1768401261"}],"max_age":3= 600} > <<< Reporting-Endpoints: heroku-nel=3D"https://nel.heroku.com/reports?s= =3D9t0rqIH4lMlfE9ncVibRPy8hCUlMqBmippMeWunG5M0%3D&sid=3Daf571f24-03ee-46d1-= 9f90-ab9030c2c74c&ts=3D1768401261" > <<< Server: Heroku > <<< Strict-Transport-Security: max-age=3D31536000; includeSubDomains > <<< Via: 1.1 heroku-router, 1.1 608555ff8069f08e821e1679cd412294.cloudfro= nt.net (CloudFront) > <<< X-Cache: Miss from cloudfront > <<< X-Amz-Cf-Pop: GRU3-P10 > <<< X-Amz-Cf-Id: LvtqT2cBMH7thFfdy3ktelkhg-ALuajh-ucfDhnv7l_s73okAxXp7Q= =3D=3D > <<< > ---> static.crates.io:443 > resolving server address: static.crates.io:443 > SSL options: 82004850 > Peer verification enabled > Using OpenSSL default CA cert file and path > Verify hostname > TLSv1.3 connection established using TLS_AES_128_GCM_SHA256 > Certificate subject: /CN=3Dstatic.crates.io > Certificate issuer: /C=3DBE/O=3DGlobalSign nv-sa/CN=3DGlobalSign Atlas R3= DV TLS CA 2025 Q3 > requesting https://static.crates.io/crates/dunce/dunce-1.0.5.crate > >>> GET /crates/dunce/dunce-1.0.5.crate HTTP/1.1 > >>> Host: static.crates.io > >>> Accept: */* > >>> User-Agent: fetch libfetch/2.0 > >>> Connection: close > >>> > <<< HTTP/1.1 200 > <<< Connection: close > <<< Content-Length: 8244 > <<< cache-control: public,max-age=3D31536000,immutable > content length: [8244] > <<< x-amz-version-id: PO7xZdimM08F9npIqG8PYtpqpEuWdV9D > <<< x-amz-id-2: EzDoao06Q7mYZgq0ecISLqKGCrHOV1gBvzNGaaAfOg4QCWZ/d3G4pjY4Z= Aoo2BNA0jACxYFWJQQ=3D > <<< x-amz-request-id: 7JJDJ8X4GESHDW5P > <<< date: Wed, 14 Jan 2026 04:21:53 GMT > <<< x-amz-replication-status: COMPLETED > <<< x-amz-server-side-encryption: AES256 > <<< last-modified: Sun, 04 Aug 2024 01:36:47 GMT > <<< etag: "198d7f7c37f632bc83502b28870b6d60" > last modified: [2024-08-04 01:36:47] > <<< accept-ranges: bytes > <<< content-type: application/gzip > <<< x-served-by: cache-gru-sbgr1930032-GRU > <<< server: AmazonS3 > <<< age: 36813 > <<< x-cache: HIT > <<< x-cache-hits: 107 > <<< > offset 0, length -1, size -1, clength 8244 > fetch: transfer timed out > fetch: dunce-1.0.5.crate appears to be truncated: 0/8244 bytes > 184.03 real 0.02 user 0.00 sys >=20 > so it's even worse, it does follow the redirect but somehow can't get the= file at all, and all of that actually takes 3 minutes to do >=20 >=20 >=20 That looks weird. It is hard to diagnose from a distance. How is you genera= l network access? Do you have a lot of package loss? Regards, Ronald. =20 ------=_Part_1909_875771080.1768406971962 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable

Van: ruby R53 <red_M95@proton.me>
Datum: woensdag, 14 januari 2026 15:41
Aan: Ronald Klop <ronald-lists@klop.ws>, Current Fre= eBSD <freebsd-current@freebsd.org>
Onderwerp: Re: Change fetch addresses for Rust crates, Pyt= hon packages and whatnot?

On Wednesday, January 14th, 2026 = at 4:11 AM, Ronald Klop <ronald-lists@klop.ws> wrote:

>
>
> Van: ruby R53 <red_M95@proton.me>
> Datum: woensdag, 14 januari 2026 03:26
> Aan: freebsd-current@freebsd.org
> Onderwerp: Change fetch addresses for Rust crates, Python packages and= whatnot?
>
> > I've been trying to compile www/chromium for literal days now, al= l because whenever `make` runs `fetch`, it goes to an address that's actual= ly supposed to redirect to another one, but `fetch` instead keeps trying fo= r a whole minute until it ultimately falls back to distcache.freebsd.org, w= hich is another whole minute of waiting for the file to download. The cherr= y on top is that the file is, most of the time, just hundreds of kilobytes = in size.
> >
> > Hell, I even had to manually download part of these individual fi= les using that Links web browser=C2=B7=C2=B7=C2=B7 it'd do it a lot faster = than `fetch`, all because it actually followed the redirection and didn't j= ust keep trying over and over. But of course I wouldn't manually download h= undreds upon hundreds of archive files, this is the reason why such tool ex= ists.
> >
> > So here's an example: currently one of the missing dependencies f= or www/chromium is GTK3, which depends on graphics/librsvg2-rust, which the= n depends on cargo-c. It's now trying to fetch dunce-1.0.5.crate, which is = one of the crates required for it, from https:= //crates.io/api/v1/crates/dunce/1.0.5/download?dummy=3D/rust/crates/dunce-1= .0.5.crate. Running `curl` on this link does literally nothing, no file= s are downloaded. But running it on any web browser instantly downloads the= crate in question, all because that link actually redirects to https://static.cra= tes.io/crates/dunce/dunce-1.0.5.crate. Even `curl`ing that new link doe= s give the file I want. Same applies for Python packages.
> >
> > Now imagine this for all the remaining files=C2=B7=C2=B7=C2=B7 if= it takes about 2 minutes to download a single file, and there's 398 crate = entries on cargo-c's `Makefile.crates`, that means it'd take a whole 796 mi= nutes to download everything, which is literally more than half a day (~13.= 6 hours) :)
> >  
>
>
>
> Can you copy-paste the output of the following command in a reply?
> fetch -vv "https://crates.io/api/v1/crate= s/dunce/1.0.5/download?dummy=3D/rust/crates/dunce-1.0.5.crate"
>
> For me it immediately follows the redirect and downloads the file in h= alf a second. See the output below.
>
> Regards,
> Ronald.
>
>
> -- 
>
> time fetch -vv "https://crates.io/api/v1/= crates/dunce/1.0.5/download?dummy=3D/rust/crates/dunce-1.0.5.crate"
> scheme:   "https"
> user:     ""
> password: ""
> host:     "crates.io"
> port:     "0"
> document: "/api/v1/crates/dunce/1.0.5/download?dummy=3D/rust/crates/du= nce-1.0.5.crate"
> ---> crates.io:443
> resolving server address: crates.io:443
> SSL options: 82004850
> Peer verification enabled
> Using OpenSSL default CA cert file and path
> Verify hostname
> TLSv1.3 connection established using TLS_AES_128_GCM_SHA256
> Certificate subject: /CN=3Dcrates.io
> Certificate issuer: /C=3DUS/O=3DAmazon/CN=3DAmazon RSA 2048 M01
> requesting https://crates.io/api/v1/crate= s/dunce/1.0.5/download?dummy=3D/rust/crates/dunce-1.0.5.crate
> >>> GET /api/v1/crates/dunce/1.0.5/download?dummy=3D/rust/cra= tes/dunce-1.0.5.crate HTTP/1.1
> >>> Host: crates.io
> >>> Accept: */*
> >>> User-Agent: fetch libfetch/2.0
> >>> Connection: close
> >>>
> <<< HTTP/1.1 302 Moved Temporarily
> <<< Content-Length: 0
> <<< Connection: close
> content length: [0]
> <<< Access-Control-Allow-Origin: *
> <<< Date: Wed, 14 Jan 2026 07:10:06 GMT
> <<< Location: https://static.crates.io/crates/dunce/dunce-1.0.5.crat= e
> <<< Nel: {"report_to":"heroku-nel","response_headers":["Via"]= ,"max_age":3600,"success_fraction":0.01,"failure_fraction":0.1}
> 302 redirect to https://static.crates.io/crates/dunce/dunce-1.0.5.crate > scheme:   "https"
> user:     ""
> password: ""
> host:     "static.crates.io"
> port:     "0"
> document: "/crates/dunce/dunce-1.0.5.crate"
> <<< Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=3DVOwdWzeBall4rSiByZHUwCe6zIbV= Fdxy%2FIgcGEUOIZo%3D\u0026sid=3Daf571f24-03ee-46d1-9f90-ab9030c2c74c\u0026t= s=3D1768374606"}],"max_age":3600}
> <<< Reporting-Endpoints: heroku-nel=3D"https://n= el.heroku.com/reports?s=3DVOwdWzeBall4rSiByZHUwCe6zIbVFdxy%2FIgcGEUOIZo%3D&= amp;sid=3Daf571f24-03ee-46d1-9f90-ab9030c2c74c&ts=3D1768374606"
> <<< Server: Heroku
> <<< Strict-Transport-Security: max-age=3D31536000; includeSub= Domains
> <<< Via: 1.1 heroku-router, 1.1 c2905f891f96a0ec9c7fab16916db= b46.cloudfront.net (CloudFront)
> <<< X-Cache: Miss from cloudfront
> <<< X-Amz-Cf-Pop: AMS58-P6
> <<< X-Amz-Cf-Id: Xa10pwbYp4MCA5eToVa0shahNpzr2epWFUuQZS63bMpm= biDLKc2dmQ=3D=3D
> <<<
> ---> static.crates.io:443
> resolving server address: static.crates.io:443
> SSL options: 82004850
> Peer verification enabled
> Using OpenSSL default CA cert file and path
> Verify hostname
> TLSv1.3 connection established using TLS_AES_128_GCM_SHA256
> Certificate subject: /CN=3Dstatic.crates.io
> Certificate issuer: /C=3DBE/O=3DGlobalSign nv-sa/CN=3DGlobalSign Atlas= R3 DV TLS CA 2025 Q3
> requesting https://static.crates.io/crates/dunce/dunce-1.0.5.crate
> >>> GET /crates/dunce/dunce-1.0.5.crate HTTP/1.1
> >>> Host: static.crates.io
> >>> Accept: */*
> >>> User-Agent: fetch libfetch/2.0
> >>> Connection: close
> >>>
> <<< HTTP/1.1 200
> <<< Connection: close
> <<< Content-Length: 8244
> <<< etag: "198d7f7c37f632bc83502b28870b6d60"
> content length: [8244]
> <<< cache-control: public,max-age=3D31536000,immutable
> <<< x-amz-version-id: PO7xZdimM08F9npIqG8PYtpqpEuWdV9D
> <<< x-amz-id-2: Dj7mFoaqQJUc61mB1FcouUQcy0tajnacJvU+xOR3Be5//= jo3GaSmdCwSSgtYyDMnYE4cPCiPv7PV9m7z1Jk0WazYHTFPbYhm
> <<< x-amz-request-id: KWXPQ4JP20HSYSY2
> <<< date: Wed, 14 Jan 2026 00:09:56 GMT
> <<< x-amz-server-side-encryption: AES256
> <<< x-amz-replication-status: COMPLETED
> <<< last-modified: Sun, 04 Aug 2024 01:36:47 GMT
> <<< accept-ranges: bytes
> last modified: [2024-08-04 01:36:47]
> <<< content-type: application/gzip
> <<< x-served-by: cache-ams21058-AMS
> <<< server: AmazonS3
> <<< age: 25212
> <<< x-cache: HIT
> <<< x-cache-hits: 148
> <<<
> offset 0, length -1, size -1, clength 8244
> local size / mtime: 8244 / 1722735407
> remote size / mtime: 8244 / 1722735407
> dunce-1.0.5.crate         &nbs= p;            &= nbsp;           &nbs= p;  8244  B   10 MBps    00s
>
> real    0m0.429s
> user    0m0.023s
> sys    0m0.027s

```
# time fetch -vv "https://crates.io/api/v1/cra= tes/dunce/1.0.5/download?dummy=3D/rust/crates/dunce-1.0.5.crate"
scheme:   "https"
user:     ""
password: ""
host:     "crates.io"
port:     "0"
document: "/api/v1/crates/dunce/1.0.5/download?dummy=3D/rust/crates/dunce-1= .0.5.crate"
---> crates.io:443
resolving server address: crates.io:443 (<- it gets stuck here for like = a minute)
SSL options: 82004850
Peer verification enabled
Using OpenSSL default CA cert file and path
Verify hostname
TLSv1.3 connection established using TLS_AES_128_GCM_SHA256
Certificate subject: /CN=3Dcrates.io
Certificate issuer: /C=3DUS/O=3DAmazon/CN=3DAmazon RSA 2048 M01
requesting https://crates.io/api/v1/crates/dun= ce/1.0.5/download?dummy=3D/rust/crates/dunce-1.0.5.crate
>>> GET /api/v1/crates/dunce/1.0.5/download?dummy=3D/rust/crates/d= unce-1.0.5.crate HTTP/1.1
>>> Host: crates.io
>>> Accept: */*
>>> User-Agent: fetch libfetch/2.0
>>> Connection: close
>>>
<<< HTTP/1.1 302 Moved Temporarily
<<< Content-Length: 0
<<< Connection: close
content length: [0]
<<< Access-Control-Allow-Origin: *
<<< Date: Wed, 14 Jan 2026 14:34:21 GMT
<<< Location: https://static.crates.io/crates/dunce/dunce-1.0.5.crate=
<<< Nel: {"report_to":"heroku-nel","response_headers":["Via"],"max= _age":3600,"success_fraction":0.01,"failure_fraction":0.1}
302 redirect to https://static.crates.io/crates/dunce/dunce-1.0.5.crate
scheme:   "https"
user:     ""
password: ""
host:     "static.crates.io"
port:     "0"
document: "/crates/dunce/dunce-1.0.5.crate"
<<< Report-To: {"group":"heroku-nel","endpoints":[{"url":"https://nel.heroku.com/reports?s=3D9t0rqIH4lMlfE9ncVibRPy8hCUlMqBmipp= MeWunG5M0%3D\u0026sid=3Daf571f24-03ee-46d1-9f90-ab9030c2c74c\u0026ts=3D1768= 401261"}],"max_age":3600}
<<< Reporting-Endpoints: heroku-nel=3D"https://nel.he= roku.com/reports?s=3D9t0rqIH4lMlfE9ncVibRPy8hCUlMqBmippMeWunG5M0%3D&sid= =3Daf571f24-03ee-46d1-9f90-ab9030c2c74c&ts=3D1768401261"
<<< Server: Heroku
<<< Strict-Transport-Security: max-age=3D31536000; includeSubDomai= ns
<<< Via: 1.1 heroku-router, 1.1 608555ff8069f08e821e1679cd412294.c= loudfront.net (CloudFront)
<<< X-Cache: Miss from cloudfront
<<< X-Amz-Cf-Pop: GRU3-P10
<<< X-Amz-Cf-Id: LvtqT2cBMH7thFfdy3ktelkhg-ALuajh-ucfDhnv7l_s73okA= xXp7Q=3D=3D
<<<
---> static.crates.io:443
resolving server address: static.crates.io:443
SSL options: 82004850
Peer verification enabled
Using OpenSSL default CA cert file and path
Verify hostname
TLSv1.3 connection established using TLS_AES_128_GCM_SHA256
Certificate subject: /CN=3Dstatic.crates.io
Certificate issuer: /C=3DBE/O=3DGlobalSign nv-sa/CN=3DGlobalSign Atlas R3 D= V TLS CA 2025 Q3
requesting https://static.crates.io/crates/dunce/dunce-1.0.5.crate
>>> GET /crates/dunce/dunce-1.0.5.crate HTTP/1.1
>>> Host: static.crates.io
>>> Accept: */*
>>> User-Agent: fetch libfetch/2.0
>>> Connection: close
>>>
<<< HTTP/1.1 200
<<< Connection: close
<<< Content-Length: 8244
<<< cache-control: public,max-age=3D31536000,immutable
content length: [8244]
<<< x-amz-version-id: PO7xZdimM08F9npIqG8PYtpqpEuWdV9D
<<< x-amz-id-2: EzDoao06Q7mYZgq0ecISLqKGCrHOV1gBvzNGaaAfOg4QCWZ/d3= G4pjY4ZAoo2BNA0jACxYFWJQQ=3D
<<< x-amz-request-id: 7JJDJ8X4GESHDW5P
<<< date: Wed, 14 Jan 2026 04:21:53 GMT
<<< x-amz-replication-status: COMPLETED
<<< x-amz-server-side-encryption: AES256
<<< last-modified: Sun, 04 Aug 2024 01:36:47 GMT
<<< etag: "198d7f7c37f632bc83502b28870b6d60"
last modified: [2024-08-04 01:36:47]
<<< accept-ranges: bytes
<<< content-type: application/gzip
<<< x-served-by: cache-gru-sbgr1930032-GRU
<<< server: AmazonS3
<<< age: 36813
<<< x-cache: HIT
<<< x-cache-hits: 107
<<<
offset 0, length -1, size -1, clength 8244
fetch: transfer timed out
fetch: dunce-1.0.5.crate appears to be truncated: 0/8244 bytes
      184.03 real     &nb= sp;   0.02 user        &n= bsp;0.00 sys

so it's even worse, it does follow the redirect but somehow can't get the f= ile at all, and all of that actually takes 3 minutes to do



That looks weird. It is hard to diagnose from a distance. How is you genera= l network access? Do you have a lot of package loss?

Regards,
Ronald.

  ------=_Part_1909_875771080.1768406971962--