Bug 2446153
| Summary: | Check disk free space before downloading packages for a system-upgrade | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | a.trubitsyn |
| Component: | dnf5 | Assignee: | rpm-software-management |
| Status: | NEW --- | QA Contact: | |
| Severity: | medium | Docs Contact: | |
| Priority: | low | ||
| Version: | 43 | CC: | jonathan, pkratoch, ppisar, rpm-software-management |
| Target Milestone: | --- | Keywords: | RFE, Triaged |
| Target Release: | --- | Flags: | fedora-admin-xmlrpc:
mirror+
|
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | --- | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | Type: | Bug | |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
a.trubitsyn
2026-03-10 18:31:48 UTC
"dnf system-upgrade download" does not perform any upgrade. It only resolves the dependencies and downloads the packages. But it does not attempt to install them. Installation is performed with a subsequent "dnf system-upgrade reboot" command. It's true that "dnf system-upgrade download" does not checked whether there is enough disk space for downloading the packages. It could, but it's not as easy to do it correctly as it can reuse already downloaded files. If the space runs out it prints an error like: Failed to download packages Librepo error: Curl error (23): Failed writing received data to disk/application for http://mirrors.dotsrc.org/fedora-enchilada/linux/development/rawhide/Everything/x86_64/os/Packages/p/perl-libs-5.42.1-523.fc45.x86_64.rpm [Failure writing output to destination, passed 1448 returned 765] It should properly report that the cause is a not enough disk space. > [3640/3640] Всего 100% | 0.0 B/s | 0.0 B | 02m37s Тестирование автономной транзакции terminate called after throwing an instance of 'libdnf5::AssertionError' what(): libdnf5/rpm/transaction.cpp:195: void libdnf5::rpm::Transaction::fill(const libdnf5::base::Transaction&): Assertion 'implicit_ts_elements.empty()' failed: The rpm transaction contains more elements than requested This is a different error, not related to this. See bug #2350481. (In reply to Petr Pisar from comment #1) > "dnf system-upgrade download" does not perform any upgrade. It only resolves > the dependencies and downloads the packages. But it does not attempt to > install them. You are true. But download 3640 or more packages need some time, if it can't end without error why do perform it? "dnf system-upgrade download" may stop after existing warning about number of downloading files, needed GiB and missing warning about free space on corresponded partition >This is a different error, not related to this. See bug #2350481. Yes, but if user not experienced enough, make previous system-upgrade (for example from f42 to f43) without problems, he or she can use it with -y option like "dnf -y system-upgrade download" and stuck with bug #2350481. I say more. dnf5 can download not one, but max_parallel_downloads (according to /etc/dnf.conf) rpm packages at same time. And at this scenario all of it may be broken. But if user add some more space next use of "dnf system-upgrade download" check only first of that broken files, not all of them, like [3640/3640] Всего 100% | 0.0 B/s | 0.0 B | 03m31s Тестирование автономной транзакции Сбой транзакции: Сбой проверки подписей. OpenPGP check for package "arm-none-eabi-gcc-cs-1:15.2.0-4.fc44.x86_64" (/usr/lib/sysimage/libdnf5/offline/packages/arm-none-eabi-gcc-cs-15.2.0-4.fc44.x86_64.rpm) from repo "fedora" has failed: Возникла проблема при открытии пакета. But command like for f in /usr/lib/sysimage/libdnf5/offline/packages/*.rpm ; do echo "-- $f --" ; rpmkeys --checksig $f ; done can see all rpm with broken signature Why "dnf system-upgrade download" don't do it? Is it possible to add some options to check and print not only first broken files, but all of them? |