Distfile caching on failed fetch stage #1138
Replies: 2 comments
-
|
I don't know why this failure to download the patches happens, but you could download the files manually into |
Beta Was this translation helpful? Give feedback.
-
|
This is not the same issue as the one describe with a reset when trying to fetch from crates.io. But I'll describe the reset issue I see (with distcache.freebsd.org). This problem is likely different, however, so just be aware this is probably not the same problem. fetch(1) spews 'Connection reset by peer' for me when I fetch using http://distcache.freebsd.org (when requesting ANY distribution file) on a corporate network. I suspect that the corporate network overlords have monitoring / security measures in place that interfere, but I have not yet been able to diagnose exactly what causes the reset (I don't get the reset when connected to a "regular" ISP). When I use wget(1), unless I use '-t 1', it retries and fails (with 'Connection reset by peer'). When I use retry counts of '-t 2' or '-t 3' then it gets some of the file, but hangs waiting for the rest. If I use '-t 4' (or more), it succeeds. Hints welcome on diagnosing the cause of the reset (note: I do not have access to packet dumps on freebsd.org or the corporate routes - only on the FreeBSD workstation endpoint). When I change to https://distcache.freebsd.org (instead of http), there is a certificate error because 'distcache' is not a valid alternate name according to the public cert (the FreeBSD project needs to update the cert to add 'distcache' as an alternative name to fix that). Changing 'distcache' to 'pkg' in the hostname gets past that issue. So that (use https://pkg.freebsd.org/...) seems to be a workaround at this time for the 'http://distcache.freebsd.org' issue. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I think the current behavior for poudriere is that it does not save any dist files when the fetch stage fails, which is leaving me stuck unable to build
graphics/librsvg2-rust.For a while now I've had
graphics/librsvg2-ruststuck as a failed build in my poudriere instance. I've attached 3 log files of my failed build of that port. Looking at the logs, it is downloading a bunch of crates, alternating between two distinct behaviors:First, 3-4 crates successfully download from
crates.io:Then, there is a block of crates that fail to download from
crates.iowithConnection reset by peer, so they pull fromdistcache.FreeBSD.org:Then the downloads from
crates.iostart working again briefly.So looking at this pattern, I think I'm getting rate-limited by
crates.io. This doesn't cause problems when the crates also exist indistcache.FreeBSD.orgbut not all the crates exist there.There are two interesting bits from this:
distcache.FreeBSD.org. So if I'm lucky, my non-rate-limited requests happen to be the crates missing fromdistcache.FreeBSD.org./usr/ports/distfiles/rust/crates/. For example, in3.log(attached), the build fails oncolor_quant-1.1.0.cratebut in both my earlier builds of1.logand2.logthat crate successfully downloaded.Running
find / -type f -name '*color_quant*crate*'turns up no files, nor doesfind /usr/ports/distfiles/rust/crates/ | grep -i quant. Butls -l /usr/ports/distfiles/rust/crates | wc -lshows I have 541 crates cached.So what I suspect is happening is poudriere only moves the downloaded distfiles into
/usr/ports/distfilesif it succeeds in fetching ALL of the crates. Is this statement correct?And assuming that is correct, this presents a problem because if each individual successfully downloaded crate ended up cached in
/usr/ports/distfilesthen over a series of builds, the rate-limiting RNG gods would slowly grant me a couple new crates each build which would eventually let me buildgraphics/librsvg2-rust.So I've posted this as a discussion instead of filing a bug report because I don't know if my assumptions on poudriere's behavior are correct. I'm hoping someone here can confirm?
Logs:
1.log
2.log
3.log
Beta Was this translation helpful? Give feedback.
All reactions