Bug 2216660

Summary: The --skip-broken option does not work as expected
Product: [Fedora] Fedora Reporter: Petr Šplíchal <psplicha>
Component: dnf5Assignee: rpm-software-management
Status: NEW --- QA Contact:
Severity: high Docs Contact:
Priority: unspecified    
Version: 39CC: alekcejk, jkolarik, mblaha, nsella, ohudlick, pkratoch, rpm-software-management
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Petr Šplíchal 2023-06-22 06:23:54 UTC
A non-zero exit code is returned for a missing package when --skip-broken used.
The available package is not installed.

Reproducible: Always

Steps to Reproduce:
dnf install -y --skip-broken tree forest
echo $?
Actual Results:  
Failed to resolve the transaction:
No match for argument: forest
# echo $?
1


Expected Results:  
tree package installed, missing forest ignored and 0 returned

dnf5-5.0.14-1.fc39.x86_64

Comment 1 Pavla Kratochvilova 2023-06-22 07:15:24 UTC
The --skip-broken is in DNF5 split between --skip-broken (to skip packages uninstallable due to depsolv problems) and --skip-unavailable (to skip packages unavailable in repositories). The change is documented here: https://github.com/rpm-software-management/dnf5/blob/main/doc/changes.rst#strict-configuration-option-deprecation (this describes the "strict" configuration option, but --skip-broken was an alias for it).

Comment 2 Marek Blaha 2023-06-22 07:17:48 UTC
So in your case try `dnf5 install -y --skip-unavailable tree forest`.

I discovered a gap in the dnf5 install command man pages - these options are not documented - upstream issue https://github.com/rpm-software-management/dnf5/issues/644.

Comment 3 Petr Šplíchal 2023-06-22 08:32:14 UTC
Thanks for the info. Just wonder, doesn't the "old" --skip-broken behaviour cover quite a frequent use case? This seems like a backward-incompatible change which will affect many users, I'd say.

Comment 4 Ondrej Hudlicky 2023-06-29 14:07:34 UTC
Why dnf is changing behavior of --skip-broken, rather then preserving it? 
This change broke our test infrastructure on many place and we see huge risks it will affect Fedora/CentOS Stream/RHEL users and customers. 
changes.rst mention that strict config option was a problem that it did two things - but we see it as benefit do these together.
Is there any issue introducing --skip-uninstallable and --skip-unavailable while keeping --skip-broken ?

Comment 5 Ondrej Hudlicky 2023-06-29 14:40:44 UTC
Also with introducing this incompatilibity, customers which have mutiple versions of RHEL would need to start maintaining RHEL release specific scripts/config

Comment 6 nucleo 2023-07-01 23:45:03 UTC
# dnf5 --skip-broken upgrade
Unknown argument "--skip-broken" for command "dnf5". Add "--help" for more information about the arguments.

# rpm -qa | grep dnf5
libdnf5-5.0.15-2.fc39.x86_64
libdnf5-cli-5.0.15-2.fc39.x86_64
dnf5-5.0.15-2.fc39.x86_64
dnf5-plugins-5.0.15-2.fc39.x86_64

Comment 7 Jan Kolarik 2023-07-13 13:56:00 UTC
The issue with the position of the argument is being discussed in related bugzilla there: https://bugzilla.redhat.com/show_bug.cgi?id=2216055.

Comment 8 Ondrej Hudlicky 2023-07-27 08:34:28 UTC
Can you please provide ETA for resolution of this regression? It causes stability issues in our CI/Testing pipelines.

Comment 9 Fedora Release Engineering 2023-08-16 08:07:48 UTC
This bug appears to have been reported against 'rawhide' during the Fedora Linux 39 development cycle.
Changing version to 39.