Bug 1597273

Summary: dnf fails to remove installed modules
Product: [Fedora] Fedora Reporter: Mikolaj Izdebski <mizdebsk>
Component: dnfAssignee: rpm-software-management
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: amatej, dmach, dvlasenk, jmracek, langdon, mblaha, mizdebsk, packaging-team-maint, rpm-software-management, sandfox, sgallagh, s.kieske, vmukhame
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: dnf-4.2.7-2.fc30 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-07-30 01:14:45 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 Mikolaj Izdebski 2018-07-02 12:30:36 UTC
Description of problem:
dnf fails to remove installed modules.

Version-Release number of selected component (if applicable):
dnf-2.7.5-12.fc28.noarch
libdnf-0.11.1-3.fc28.x86_64

Steps to Reproduce:
1. dnf module install maven:3.5/default
2. dnf --enablerepo updates-testing-modular update
3. dnf module remove maven:3.5/default

Actual results:
"Nothing to do."

[root@f28-test ~][PROD]# dnf module list
Fedora Modular 28 - x86_64                      1.0 MB/s | 159 kB     00:00    
Fedora Modular 28 - x86_64 - Updates            6.3 MB/s | 844 kB     00:00    
Fedora 28 - x86_64 - Updates                     41 MB/s |  18 MB     00:00    
Fedora 28 - x86_64                               44 MB/s |  60 MB     00:01    
Fedora Infrastructure tag 28 - x86_64           2.2 MB/s | 589 kB     00:00    
Last metadata expiration check: 0:00:00 ago on Mon 02 Jul 2018 12:23:10 PM UTC.
Fedora Modular 28 - x86_64
Name               Stream        Version          Profiles                      
reviewboard        2.5 [d]       20180206144254   default, server               

Fedora Modular 28 - x86_64 - Updates
Name               Stream        Version          Profiles                      
ant                1.10 [e]      20180411122322   default [i]                   
avocado            latest        20180614184418   default, minimal              
container-tools    2017.0        20180313063358   default                       
cri-o              2017.0        20180313134242   default                       
django             1.6           20180409143454   default, python2_development  
docker             2017.0        20180314032736   default                       
flatpak-runtime    f28           20180307202408   buildroot, runtime, ...       
gimp               2.10          20180523092110   default, devel                
golang             1.10          20180327174614   default                       
golang-ecosystem   2017.0        20180312141905   default                       
hub                pre-release   20180613180542   default                       
mariadb            10.1          20180419160707   client, default, ...          
maven              3.5 [e]       20180411112402   default [i]                   
mysql              5.6           20180507203856   client, default, ...          
mysql              8.0           20180507133324   client, default, ...          
nodejs             10            20180510163433   default, development, ...     
nodejs             6             20180614180859   default, development, ...     
nodejs             8             20180604172846   default, development, ...     
nodejs             9             20180614205456   default, development, ...     
postgresql         9.6           20180429200004   client, default, ...          
reviewboard        3.0           20180607124319   default, server               
squid              4.0           20180604145326   default                       

Hint: [d]efault, [e]nabled, [i]nstalled, [l]ocked

[root@f28-test ~][PROD]# dnf module remove ant:1.10/default
Last metadata expiration check: 0:00:22 ago on Mon 02 Jul 2018 12:23:10 PM UTC.
Dependencies resolved.
Nothing to do.
Complete!

[root@f28-test ~][PROD]# dnf module remove maven:3.5/default
Last metadata expiration check: 0:00:32 ago on Mon 02 Jul 2018 12:23:10 PM UTC.
Dependencies resolved.
Nothing to do.
Complete!

[root@f28-test ~][PROD]# dnf module list --installed
Last metadata expiration check: 0:00:44 ago on Mon 02 Jul 2018 12:23:10 PM UTC.
Fedora Modular 28 - x86_64 - Updates
Name            Stream             Version                  Profiles            
ant             1.10 [e]           20180411122322           default [i]         
maven           3.5 [e]            20180411112402           default [i]         

Hint: [d]efault, [e]nabled, [i]nstalled, [l]ocked

Comment 1 Stephen Gallagher 2018-08-30 15:34:08 UTC
Is this a side-effect of https://bugzilla.redhat.com/show_bug.cgi?id=1623128 ?

Comment 2 Daniel Mach 2018-09-24 07:59:09 UTC
Mikolaj,
could you re-test the behavior on F29 with dnf >= 3.5.1?
The overall behavior has improved and we'd like to understand if the original report is still valid.

Comment 3 Mikolaj Izdebski 2018-09-24 11:28:39 UTC
This problem it is still reproducible on F29 with dnf-3.5.1-1.fc29.noarch
Module can't be removed when modular repos are disabled.

# dnf --disablerepo *modular* module remove maven
Last metadata expiration check: 0:04:35 ago on Mon 24 Sep 2018 11:22:16 AM UTC.
Dependencies resolved.
Nothing to do.
Complete!

# dnf module list | grep maven
maven            3.5 [e]        default [d] [i] Java project management and proj
maven            3.5 [e]        default [d] [i] Java project management and proj

Comment 5 Jaroslav Mracek 2018-10-03 12:34:34 UTC
The problem should be fixed by storing additional information in "/etc/dnf/modules.d/*.module".

At the present time we stored
profiles=<profile_name>,<profile_name>

I would suggest to replaced it with for example:
installed=<profile_name>:<stream>/<pkg_name>/<pkg_name>,<profile_name>:<stream>/<pkg_name>/<pkg_name>

It will provide all required information to solve the issue. But such a change will require approve because this is significant change in modular design.

What do you think?

Comment 6 Ben Cotton 2019-05-02 20:45:33 UTC
This message is a reminder that Fedora 28 is nearing its end of life.
On 2019-May-28 Fedora will stop maintaining and issuing updates for
Fedora 28. It is Fedora's policy to close all bug reports from releases
that are no longer maintained. At that time this bug will be closed as
EOL if it remains open with a Fedora 'version' of '28'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 28 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 7 Denys Vlasenko 2019-06-19 13:07:32 UTC
In Rawhide:

# dnf module list
Last metadata expiration check: 0:10:13 ago on Wed Jun 19 08:55:56 2019.
Fedora - Modular Rawhide - Developmental packages for the next Fedora release
Name                             Stream                   Profiles                                                     Summary                                                                                     
...
squid                            4                        default                                                      Squid - Optimising Web Delivery     
...

# dnf module remove squid
Last metadata expiration check: 0:11:01 ago on Wed Jun 19 08:55:56 2019.
Unable to match profile in argument squid
^^^^^^^^^^^^^^^^^^^^^^^^^^^ ???
Dependencies resolved.
Nothing to do.
Complete!

Comment 8 Jaroslav Mracek 2019-07-03 18:12:54 UTC
The problem will be fixed by fail-safe feature in dnf-4.2.7

Comment 9 Fedora Update System 2019-07-04 13:50:23 UTC
FEDORA-2019-58c2d3f1aa has been submitted as an update to Fedora 30. https://bodhi.fedoraproject.org/updates/FEDORA-2019-58c2d3f1aa

Comment 10 Fedora Update System 2019-07-05 00:45:56 UTC
dnf-4.2.7-1.fc30, libdnf-0.35.1-1.fc30 has been pushed to the Fedora 30 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-58c2d3f1aa

Comment 11 Fedora Update System 2019-07-23 07:21:18 UTC
FEDORA-2019-672a74d688 has been submitted as an update to Fedora 30. https://bodhi.fedoraproject.org/updates/FEDORA-2019-672a74d688

Comment 12 Fedora Update System 2019-07-24 01:44:14 UTC
dnf-4.2.7-2.fc30, libdnf-0.35.1-2.fc30 has been pushed to the Fedora 30 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-672a74d688

Comment 13 Fedora Update System 2019-07-30 01:14:45 UTC
dnf-4.2.7-2.fc30, libdnf-0.35.1-2.fc30 has been pushed to the Fedora 30 stable repository. If problems still persist, please make note of it in this bug report.

Comment 14 Anton Smirnov 2020-04-29 14:21:44 UTC
dnf-4.2.21: still valid


# sudo dnf module remove gimp:2.10/default
Last metadata expiration check: 0:00:39 ago on Wed 29 Apr 2020 17:16:01 EEST.
Unable to match profile in argument gimp:2.10/default
Dependencies resolved.
Nothing to do.
Complete!

Comment 15 Anton Smirnov 2020-04-29 16:24:12 UTC
^ Ignore prevoius message, unrelated

Comment 16 Sven Kieske 2020-05-27 14:44:41 UTC
Sorry, but this does not seem to be fixed!

I want to upgrade from fedora 30 to 31, as 30 is now EOL.

So I go by the docs and want to upgrade:

sudo dnf system-upgrade download --refresh --releasever=31 
[..]
terminate called after throwing an instance of 'libdnf::ModulePackageContainer::EnableMultipleStreamsException'
  what():  Cannot enable multiple streams for module 'maven'
[1]    4896 abort      sudo dnf system-upgrade download --refresh --releasever=31

So I tried to remove the module:

udo dnf remove maven
No match for argument: maven
No packages marked for removal.
Abhängigkeiten sind aufgelöst.
Nothing to do.
Complete!

so I search, how to remove modules:
https://docs.fedoraproject.org/en-US/modularity/removing-modules/

udo dnf module list --enabled
Letzte Prüfung auf abgelaufene Metadaten: vor 0:08:40 am Mi 27 Mai 2020 16:26:00 CEST.
Fedora Modular 30 - x86_64
Name                                         Stream                                              Profiles                                        Summary                                                                                     
ant                                          1.10 [d][e]                                         default [d]                                     Java build tool                                                                             
maven                                        3.5 [d][e]                                          default [d]                                     Java project management and project comprehension tool                                      
ripgrep                                      latest [d][e]                                       default [d]                                     Line oriented search tool using Rust's regex library                                        
scala                                        2.10 [d][e]                                         default [d]                                     A hybrid functional/object-oriented language for the JVM                                    

Fedora Modular 30 - x86_64 - Updates
Name                                         Stream                                              Profiles                                        Summary                                                                                     
ant                                          1.10 [d][e]                                         default [d]                                     Java build tool                                                                             
fd-find                                      rolling [d][e]                                      default [d]                                     Simple, fast and user-friendly alternative to find                                          
maven                                        3.5 [d][e]                                          default [d]                                     Java project management and project comprehension tool                                      
ripgrep                                      latest [d][e]                                       default [d]                                     Line oriented search tool using Rust's regex library                                        
tokei                                        rolling [d][e]                                      default [d]                                     Utility that allows you to count code, quickly                                              

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled


udo dnf module remove maven:3.5/default
Letzte Prüfung auf abgelaufene Metadaten: vor 0:12:33 am Mi 27 Mai 2020 16:26:00 CEST.
Unable to match profile in argument maven:3.5/default
Abhängigkeiten sind aufgelöst.
Nothing to do.
Complete!


dnf --version
4.2.18
  Installed: dnf-0:4.2.18-1.fc30.noarch at Mo 24 Feb 2020 08:00:10 GMT
  Built    : Fedora Project at Mi 15 Jan 2020 14:08:18 GMT

  Installed: rpm-0:4.14.2.1-5.fc30.x86_64 at Mo 06 Jan 2020 12:50:50 GMT
  Built    : Fedora Project at Do 29 Aug 2019 10:46:16 GMT


any info would be appreciated..

Comment 17 Sven Kieske 2020-05-27 14:54:28 UTC
Hi,

I found a workaround:

not working:

sudo dnf module remove maven:3.5/default
Letzte Prüfung auf abgelaufene Metadaten: vor 0:25:32 am Mi 27 Mai 2020 16:26:00 CEST.
Unable to match profile in argument maven:3.5/default
Abhängigkeiten sind aufgelöst.
Nothing to do.
Complete!

so I checked why it can't match the profile:

cat /etc/dnf/modules.d/maven.module                                                                                                                                                        
[maven]
name=maven
stream=3.5
profiles=
state=enabled

so I added "default" to the profile in the maven.module file and then it works:

sudo dnf module remove maven:3.5/default
Letzte Prüfung auf abgelaufene Metadaten: vor 0:25:53 am Mi 27 Mai 2020 16:26:00 CEST.
Abhängigkeiten sind aufgelöst.
=============================================================================================================================================================================================================================================
 Package                                                  Architecture                                            Version                                                     Repository                                                Size
=============================================================================================================================================================================================================================================
Disabling module profiles:
 maven/default                                                                                                                                                                                                                              

Transaction Summary
=============================================================================================================================================================================================================================================

Is this ok [y/N]: y
Complete!


This is by far the worst user experience I got from a fedora upgrade in many years, to say the least.

Comment 18 amatej 2020-10-09 05:41:56 UTC
Sorry for the very late response.
We did eventually fix the system upgrade issue in dnf-plugins-extras-4.0.8-5.fc30. For fedora 30 its only in updates-testing repo.

I know this is probably not relevant to you anymore but at least it should be working in newer fedoras.