[Bug 260399] freebsd-update: Downloading patches often fails repeatedly

From: <bugzilla-noreply_at_freebsd.org>
Date: Tue, 14 Dec 2021 00:51:54 UTC

--- Comment #2 from Some Signup <somesignup@icloud.com> ---
It's not related to a version of FreeBSD. It's related solely to freebsd-update
itself (and portsnap).

The simple fact is freebsd-update is not a reliable tool. I am willing to bet
that if I wrote a dead simple shell script to iterate over a list of 7736 files
and to fetch/curl/wget/whatever them one at a time I would get 7736 (or close
to that) files at the first attempt. And if I had a file with mapping files to
checksums, I could check each file and see if it matches, and if any one or
more files do not match their checksums or were not fetched, I could re-fetch
them. I would report that at the end of the big fetch process, and retry just
the files with mismatched checksums. But apparently that is too much for
freebsd-update and portsnap to handle. Instead it wants to refetch thousands of
patches files all over again. Seriously... this is utter madness. I do not for
one second believe that, in the example shown below, 7129 patches were somehow
broken the first time round. It just don't believe it. At some point you have
to look at the individual tool and not the system as a whole.

Now, I'm aware that freebsd-update does a lot more than just fetch a load of
files. But this is where it fails. I am not alone in seeing this. 

I've used FreeBSD for over 20 years and I'm a big fan. I've even bought FreeBSD
goodies to directly support the project. But I have to be honest and vent my
spleen here about this sub-standard tool. It really is not good enough. 

I manage numerous machines remotely. They are not even in the same country. I
am not confident in freebsd-update to update them to a new release. Patch level
updates work, seemingly because not 'too many' files are involved. But release
-> release updates are a whole different thing.

The fault is solely with freebsd-update (and its ugly cousin portsnap). I've
read the reports, and I know that it is not me doing something wrong nor the
way my systems are configured.

If you think it's related to any of my machines, it is not. In which case here
is some useless information :

root@bsddev-12:/usr/home/unhappyuser # freebsd-update upgrade -r 12.3-RELEASE
Looking up update.FreeBSD.org mirrors... 2 mirrors found.
Fetching metadata signature for 12.2-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata files... done.
Inspecting system... done.

The following components of FreeBSD seem to be installed:
kernel/generic src/src world/base world/doc world/lib32

The following components of FreeBSD do not seem to be installed:
kernel/generic-dbg world/base-dbg world/lib32-dbg

Does this look reasonable (y/n)? y

Fetching metadata signature for 12.3-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system... done.
Fetching files from 12.2-RELEASE for merging... done.
Preparing to download files... done.
Fetching 41704 patches.....10..
....41690....41700.. done.

Fetching 7736 files... ....10....20
....7730... failed.

Today this is trying to update from 12.2-RELEASE-p7 -> 12.3 RELEASE. But I've
seen it going back for ages and ages.

This is connecting to: is an alias for
69.64/ domain name pointer update2.freebsd.org.

You are receiving this mail because:
You are on the CC list for the bug.