Bug 2070967

Summary: dnf breaks updateprocess with "already downloaded"
Product: Red Hat Enterprise Linux 9 Reporter: Marek Blaha <mblaha>
Component: dnfAssignee: Marek Blaha <mblaha>
Status: CLOSED ERRATA QA Contact: Tomáš Bajer <tbajer>
Severity: medium Docs Contact:
Priority: medium    
Version: 9.0CC: bugzilla, customercare, daniel.mach, Daniel, extras-qa, fsumsal, i18n-bugs, james.antill, jmracek, jrohel, mbanas, mblaha, mhatina, mtasaka, packaging-team-maint, pkratoch, rpm-software-management, tbajer, tomek, vmukhame
Target Milestone: rcKeywords: Triaged
Target Release: ---Flags: pm-rhel: mirror+
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: dnf-4.12.0-1.el9 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: 2024527 Environment:
Last Closed: 2022-11-15 11:15:35 UTC 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 Marek Blaha 2022-04-01 13:09:23 UTC
+++ This bug was initially created as a clone of Bug #2024527 +++

Description of problem:

You will find a log of an broken dnf update process attached. The catch is, the dnf error is "all files are already downloaded" in other words, there is no error message that is presented, it just breaks.

This happened for the second time now in rawhide and needs fixing and a workaround description somewhere, because the normal enduser is not able to fix this, due lack of knowlage.


Version-Release number of selected component (if applicable):

4.10.0-1 FC36


** WORKAROUND **

as root:

dnf clean all; # clean out all already downloaded AND ALL PREVIOUSLY CACHED rpms 
dnf update;    # downloads all new rpms again.


IN CASE OF REQUIRED CACHING, you need to move the rpms out of /var/cache/dnf/<REPONAME..>/packages/  to safe location like /root/ and later copy them back.

--- Additional comment from  on 2021-11-22 11:04:06 CET ---

Here is an example for exactly ONE package to update:

[root@fedorapine packages]# dnf update
Fedora - Rawhide - Developmental packages for the next Fedora release                                                                                                                                                                            15 kB/s |  15 kB     00:01    
RPM Fusion for Fedora Rawhide - Free                                                                                                                                                                                                            4.9 kB/s | 4.6 kB     00:00    
Abhängigkeiten sind aufgelöst.
================================================================================================================================================================================================================================================================================
 Package                                                                        Architecture                                          Version                                                        Repository                                                            Size
================================================================================================================================================================================================================================================================================
Aktualisieren:
 gstreamer1-plugins-bad-freeworld                                               aarch64                                               1:1.19.3-1.fc36                                                rpmfusion-free-rawhide                                               182 k

Transaktionsübersicht
================================================================================================================================================================================================================================================================================
Aktualisieren  1 Paket

Gesamtgröße: 182 k
Ist dies in Ordnung? [j/N]: j
Pakete werden heruntergeladen:
[SKIPPED] gstreamer1-plugins-bad-freeworld-1.19.3-1.fc36.aarch64.rpm: Already downloaded                                                                                                                                                                                       

Fehler: Fehler beim Herunterladen der Pakete:
  gstreamer1-plugins-bad-freeworld-1:1.19.3-1.fc36.aarch64: Already downloaded
[root@fedorapine packages]# dnf clean all
297 Dateien entfernt
[root@fedorapine packages]# dnf update
Copr repo for mobile owned by njha                                                                                                                                                                                                              6.6 kB/s |  48 kB     00:07    
Fedora - Rawhide - Developmental packages for the next Fedora release   
1.9 MB/s |  58 MB     00:29    
Fedora - Modular Rawhide - Developmental packages for the next Fedora release                                                                                                                                                                   602 kB/s | 1.0 MB     00:01    
RPM Fusion for Fedora Rawhide - Free                                                                                                                                                                                                            621 kB/s | 879 kB     00:01    
RPM Fusion for Fedora Rawhide - Nonfree                                                                                                                                                                                                         169 kB/s | 138 kB     00:00    
Letzte Prüfung auf abgelaufene Metadaten: vor 0:00:01 am Mo 22 Nov 2021 11:02:17 CET.
Abhängigkeiten sind aufgelöst.
================================================================================================================================================================================================================================================================================
 Package                                                                        Architecture                                          Version                                                        Repository                                                            Size
================================================================================================================================================================================================================================================================================
Aktualisieren:
 gstreamer1-plugins-bad-freeworld                                               aarch64                                               1:1.19.3-1.fc36                                                rpmfusion-free-rawhide                                               182 k

Transaktionsübersicht
================================================================================================================================================================================================================================================================================
Aktualisieren  1 Paket

Gesamte Downloadgröße: 182 k
Ist dies in Ordnung? [j/N]: j
Pakete werden heruntergeladen:
gstreamer1-plugins-bad-freeworld-1.19.3-1.fc36.aarch64.rpm                                                                                                                                                                                      689 kB/s | 182 kB     00:00    A
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Gesamt                                                                                                                                                                                                                                          111 kB/s | 182 kB     00:01     
Transaktionsüberprüfung wird ausgeführt
Transaktionsprüfung war erfolgreich.
Transaktion wird getestet
Transaktionstest war erfolgreich.
Transaktion wird ausgeführt
  Vorbereitung läuft    :                                                                                                                                                                                                                                                   1/1 
  Aktualisieren         : gstreamer1-plugins-bad-freeworld-1:1.19.3-1.fc36.aarch64                                                                                                                                                                                          1/2 
  Aufräumen             : gstreamer1-plugins-bad-freeworld-1:1.19.2-1.fc36.aarch64                                                                                                                                                                                          2/2 
  Ausgeführtes Scriptlet: gstreamer1-plugins-bad-freeworld-1:1.19.2-1.fc36.aarch64                                                                                                                                                                                          2/2 
  Überprüfung läuft     : gstreamer1-plugins-bad-freeworld-1:1.19.3-1.fc36.aarch64                                                                                                                                                                                          1/2 
  Überprüfung läuft     : gstreamer1-plugins-bad-freeworld-1:1.19.2-1.fc36.aarch64                                                                                                                                                                                          2/2 

Aktualisiert:
  gstreamer1-plugins-bad-freeworld-1:1.19.3-1.fc36.aarch64                                                                                                                                                                                                                      

Fertig.


Conclusion: It's nothing with the rpms itself, it's a dnf internal bug.

--- Additional comment from  on 2021-11-22 11:05:21 CET ---

I updated all of the rpm via rpm -U manually, just to rule out any package problems: none had issues .

--- Additional comment from Ben Cotton on 2022-02-08 22:27:03 CET ---

This bug appears to have been reported against 'rawhide' during the Fedora 36 development cycle.
Changing version to 36.

--- Additional comment from  on 2022-02-27 10:06:32 CET ---

Still happening with :

# rpm -qi dnf
Name        : dnf
Version     : 4.10.0
Release     : 2.fc36
Architecture: noarch
Install Date: Sa 05 Feb 2022 17:53:16 CET

and very annoying.

--- Additional comment from Mamoru TASAKA on 2022-03-14 08:17:59 CET ---

I see this issue also on ja_JP.utf8, zh_ZW.utf8

# rpm -q dnf
dnf-4.10.0-2.fc36.noarch

root@localhost ~]# env LANG=C.utf8 LC_ALL=C.utf8 dnf -y upgrade rubygem-unf_ext --downloadonly
Last metadata expiration check: 0:04:30 ago on Mon Mar 14 15:36:20 2022.
Dependencies resolved.
=====================================================================================================
 Package             Architecture    Version           Repository          Size
=====================================================================================================
Upgrading:
 rubygem-unf_ext     x86_64         0.0.8.1-1.fc36     updates-testing     157 k

Transaction Summary
=====================================================================================================
Upgrade  1 Package

Total download size: 157 k
DNF will only download packages for the transaction.
Downloading Packages:
rubygem-unf_ext-0.0.8.1-1.fc36.x86_64.rpm                                                                                                                                                              914 kB/s | 157 kB     00:00    
-----------------------------------------------------------------------------------------------------
Total                                                                                                                                                                                                  236 kB/s | 157 kB     00:00     
Complete!
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
[root@localhost ~]# env LANG=ja_JP.utf8 LC_ALL=ja_JP.utf8 dnf upgrade rubygem-unf_ext
メタデータの期限切れの最終確認: 0:04:45 時間前の 2022年03月14日 15時36分20秒 に実施しました。
依存関係が解決しました。
=====================================================================================================
 パッケージ             アーキテクチャー   バージョン            リポジトリー           サイズ
=====================================================================================================
アップグレード:
 rubygem-unf_ext     x86_64         0.0.8.1-1.fc36     updates-testing     157 k
トランザクションの概要
=====================================================================================================
アップグレード  1 パッケージ

合計サイズ: 157 k
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
[SKIPPED] rubygem-unf_ext-0.0.8.1-1.fc36.x86_64.rpm: Already downloaded                                                                                                                                                               

ダウンロード済みのパッケージは、次の正常なトランザクションまでキャッシュに保存されました。
'dnf clean packages' を実行することでキャッシュパッケージを削除できます。
エラー: パッケージのダウンロード中にエラーが発生しました:
  rubygem-unf_ext-0.0.8.1-1.fc36.x86_64: Already downloaded

[root@localhost ~]# env LANG=zh_TW.utf8 LC_ALL=zh_TW.utf8 dnf upgrade rubygem-unf_ext
Fedora 36 - x86_64 - Test Updates                                                                                                                                                                       15 kB/s |  18 kB     00:01    
依賴關係解析完畢。
=====================================================================================================
 軟體包                架構              版本                  軟體庫                  大小
=====================================================================================================
升級:
 rubygem-unf_ext     x86_64         0.0.8.1-1.fc36     updates-testing     157 k

處理事項摘要
=====================================================================================================
升級  1 軟體包

總大小:157 k
這樣可以嗎 [y/N]: y
下載軟體包:
[SKIPPED] rubygem-unf_ext-0.0.8.1-1.fc36.x86_64.rpm: Already downloaded                                                                                                                                                               

直到有下個成功處理事項為止,下載的軟體包會存在快取中。
您可以透過執行「dnf clean packages」移除軟體包快取。
錯誤:下載軟體包時失敗:
  rubygem-unf_ext-0.0.8.1-1.fc36.x86_64: Already downloaded
[root@localhost ~]# env LANG=en_US.utf8 LC_ALL=en_US.utf8 dnf upgrade rubygem-unf_ext
Fedora 36 - x86_64 - Test Updates                                                                                                                                                                      1.1 kB/s |  18 kB     00:16    
Dependencies resolved.
=====================================================================================================
 Package             Architecture   Version           Repository           Size
=====================================================================================================
Upgrading:
 rubygem-unf_ext     x86_64         0.0.8.1-1.fc36     updates-testing     157 k

Transaction Summary
=====================================================================================================
Upgrade  1 Package

Total size: 157 k
Is this ok [y/N]: y
Downloading Packages:
[SKIPPED] rubygem-unf_ext-0.0.8.1-1.fc36.x86_64.rpm: Already downloaded                                                                                                                                                               
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                        1/1 
  Upgrading        : rubygem-unf_ext-0.0.8.1-1.fc36.x86_64  1/2 
  Cleanup          : rubygem-unf_ext-0.0.8-3.fc36.x86_64    2/2 
  Running scriptlet: rubygem-unf_ext-0.0.8-3.fc36.x86_64    2/2 
  Verifying        : rubygem-unf_ext-0.0.8.1-1.fc36.x86_64  1/2 
  Verifying        : rubygem-unf_ext-0.0.8-3.fc36.x86_64    2/2 

Upgraded:
  rubygem-unf_ext-0.0.8.1-1.fc36.x86_64                                                                                                                                                                                                

Complete!

--- Additional comment from Mamoru TASAKA on 2022-03-14 08:22:12 CET ---

So this fails at least on ja_JP.utf8 , zh_TW.utf8 . Reporter says this also fails on de_DE.utf8 (perhaps?), but this succeeds on C.utf8.

--- Additional comment from Fedora Blocker Bugs Application on 2022-03-14 08:32:13 CET ---

Proposed as a Freeze Exception for 36-final by Fedora user mtasaka using the blocker tracking app because:

 This bug may affect lots of non-English Fedora user when doing software update

--- Additional comment from Marek Blaha on 2022-03-14 09:46:28 CET ---

The problem is real and valid. You are not able to update the system with other than english locale in case that some of the updates were already downloaded. This is quite common when you use dnf-automatic. As mentioned you can work-around this issue by cleaning the dnf cache.

Steps to reproduce:

1. you need to have at least one upgradable package on the system
2. download updates into cache: # dnf update --downloadonly -y
3. try to update the system having other than C locale set: # LC_ALL=de_DE.utf8 dnf update -y

============================================================================================================================================
 Paket                                    Architektur                Version                              Paketquelle                 Größe
============================================================================================================================================
Aktualisieren:
 libuv                                    x86_64                     1:1.44.1-1.fc35                      updates                     150 k

Transaktionszusammenfassung
============================================================================================================================================
Aktualisieren  1 Paket

Gesamtgröße: 150 k
Pakete werden heruntergeladen:
[SKIPPED] libuv-1.44.1-1.fc35.x86_64.rpm: Already downloaded                                                                               

Die heruntergeladenen Pakete wurden bis zur nächsten erfolgreichen Transaktion im Zwischenspeicher abgelegt.
Sie können zwischengespeicherte Pakete mit dem Befehl »dnf clean packages« entfernen.
Fehler: Fehler beim Herunterladen der Pakete:
  libuv-1:1.44.1-1.fc35.x86_64: Already downloaded

--- Additional comment from Marek Blaha on 2022-03-14 10:01:47 CET ---

PR https://github.com/rpm-software-management/dnf/pull/1818 fixes the problem.

Comment 1 Jaroslav Mracek 2022-04-06 10:58:55 UTC
May I ask you for a reference of the CI test?

AC: Ensure that the issue cannot be reproduce.

PS: I expect that there will be a test in CI

Reproducer from a description:


Steps to reproduce:

1. you need to have at least one upgradable package on the system
2. download updates into cache: # dnf update --downloadonly -y
3. try to update the system having other than C locale set: # LC_ALL=de_DE.utf8 dnf update -y

Comment 2 Marek Blaha 2022-04-06 11:04:18 UTC
The CI test is referenced in the Devel whiteboard: dnf-behave-tests/dnf/upgrade-cached.feature

Comment 3 customercare 2022-04-06 11:20:21 UTC
DNF fix confirmed for the original Rawhide Pinephone reporting the "already downloaded"-bug. 

THX

Comment 10 Marek Blaha 2022-11-09 07:57:37 UTC
*** Bug 2134013 has been marked as a duplicate of this bug. ***

Comment 11 customercare 2022-11-12 09:47:33 UTC
can we close this?

Comment 13 errata-xmlrpc 2022-11-15 11:15:35 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (dnf bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2022:8297