Bug 1251593

Summary: dnf and rpm out of sync - claim installed pkgs are not installed
Product: [Fedora] Fedora Reporter: Leek Soup <leeksoup10>
Component: dnfAssignee: Michael Mráka <mmraka>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 22CC: jsilhan, mluscon, mmraka, packaging-team-maint, pnemade, rholy, tim.lauridsen, vmukhame
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-08-10 08:19:01 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 Leek Soup 2015-08-07 20:23:51 UTC
Description of problem:
I've been trying to get xsane 32-bit to work on my x86_64 hardware. It has always worked in the past for me, but this time with F22, it's severely broken. I've already filed a few bugs in the process.

This time, the problem is I was trying to use rpm with direct http:// link to the 32-bit packages that dnf would not find. It seems that they are not communicating properly, maybe rpm DB is getting out of sync with one or other.


Version-Release number of selected component (if applicable):
dnf.noarch   1.0.1-2.fc22
rpm.x86_64   4.12.0.1-12.fc22


How reproducible:
Happened several times as I was trying to install all packages for xsane.i686 and my scanner.


Steps to Reproduce:
1. sudo dnf install sane-backends-libs.i686
2. rpm -Uvh http://mirror.sfo12.us.leaseweb.net/fedora/linux/releases/22/Everything/i386/os/Packages/s/sane-backends-1.0.24-13.fc22.i686.rpm
3. sudo dnf list sane-backends-libs


Actual results:
1. sudo dnf install sane-backends-libs.i686
Last metadata expiration check performed 2:43:45 ago on Thu Aug  6 13:20:30 2015.
Dependencies resolved.
================================================================================
 Package                  Arch       Version                Repository     Size
================================================================================
Installing:
 sane-backends-libs       i686       1.0.24-14.fc22         updates       101 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 101 k
Installed size: 183 k
Is this ok [y/N]: y
Downloading Packages:
sane-backends-libs-1.0.24-14.fc22.i686.rpm      171 kB/s | 101 kB     00:00    
--------------------------------------------------------------------------------
Total                                            48 kB/s | 101 kB     00:02     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Installing  : sane-backends-libs-1.0.24-14.fc22.i686                      1/1 
  Verifying   : sane-backends-libs-1.0.24-14.fc22.i686                      1/1 

Installed:
  sane-backends-libs.i686 1.0.24-14.fc22                                        

Complete!


2. rpm -Uvh http://mirror.sfo12.us.leaseweb.net/fedora/linux/releases/22/Everything/i386/os/Packages/s/sane-backends-1.0.24-13.fc22.i686.rpm
Retrieving http://mirror.sfo12.us.leaseweb.net/fedora/linux/releases/22/Everything/i386/os/Packages/s/sane-backends-1.0.24-13.fc22.i686.rpm
error: Failed dependencies:
	sane-backends-libs(x86-32) = 1.0.24-13.fc22 is needed by sane-backends-1.0.24-13.fc22.i686


3. sudo dnf list sane-backends-libs
Last metadata expiration check performed 2:45:58 ago on Thu Aug  6 13:20:30 2015.
Installed Packages
sane-backends-libs.i686                   1.0.24-14.fc22                 @System
sane-backends-libs.x86_64                 1.0.24-14.fc22                 @System


Expected results:
If a package is installed it should be recognized as installed by both rpm and dnf. Here clearly dnf installed the sane-backends-libs.i686 package, but rpm did not find it installed.


Additional info:
After this, I tried using rpm to install both sane-backends and sane-backends-libs. At this point, rpm informed me that the libs were already installed ....
$ sudo rpm -Uvh http://mirror.us.leaseweb.net/fedora/linux/updates/22/i386/s/sane-backends-1.0.24-14.fc22.i686.rpm http://mirror.us.leaseweb.net/fedora/linux/updates/22/i386/s/sane-backends-libs-1.0.24-14.fc22.i686.rpm
Retrieving http://mirror.us.leaseweb.net/fedora/linux/updates/22/i386/s/sane-backends-1.0.24-14.fc22.i686.rpm
Retrieving http://mirror.us.leaseweb.net/fedora/linux/updates/22/i386/s/sane-backends-libs-1.0.24-14.fc22.i686.rpm
Preparing...                          ################################# [100%]
	package sane-backends-libs-1.0.24-14.fc22.i686 is already installed

And then, I tried installing the scanner's driver, only to find that rpm had forgotten the sane-backends it had JUST INSTALLED.
$ rpm -Uvh cndrvsane-p150-1.00-0.2.i386.rpm 
error: Failed dependencies:
	sane-backends >= 1.0.14 is needed by cndrvsane-p150-1.00-0.2.i386

Oh, and dnf wouldn't acknowledge it, either:
$ sudo dnf list sane-backends
Last metadata expiration check performed 2:49:20 ago on Thu Aug  6 13:20:30 2015.
Available Packages
sane-backends.x86_64                   1.0.24-14.fc22                    updates

Comment 1 Michael Mráka 2015-08-10 08:19:01 UTC
(In reply to Leek Soup from comment #0)
> Actual results:
> 1. sudo dnf install sane-backends-libs.i686
...
> Installed:
>   sane-backends-libs.i686 1.0.24-14.fc22                                    
> Complete!
> 
> 2. rpm -Uvh http://mirror.sfo12.us.leaseweb.net/fedora/linux/releases/22/Everything/i386/os/Packages/s/sane-backends-1.0.24-13.fc22.i686.rpm
...
error: Failed dependencies:
> 	sane-backends-libs(x86-32) = 1.0.24-13.fc22 is needed by sane-backends-1.0.24-13.fc22.i686
> 
> 3. sudo dnf list sane-backends-libs
> Last metadata expiration check performed 2:45:58 ago on Thu Aug  6 13:20:30 2015.
> Installed Packages
> sane-backends-libs.i686                   1.0.24-14.fc22                @System
> sane-backends-libs.x86_64                 1.0.24-14.fc22                @System
> 
> 
> Expected results:
> If a package is installed it should be recognized as installed by both rpm
> and dnf. Here clearly dnf installed the sane-backends-libs.i686 package, but
> rpm did not find it installed.

As you can see from listing above dnf installed sane-backends-libs.i686 1.0.24-14.fc22.
While you tried to install -13.fc22.i686 with rpm (one release older) so rpm reported broken dependencies.
This is correct behaviour and it will work if you install -14.fc22.i686 package with rpm.

Comment 2 Leek Soup 2015-08-10 21:11:53 UTC
Sorry, you are right. I missed that detail. And the reason for the other strange behavior (in Additional info) was that rpm does not install any package if one of them listed is already installed. I thought it was like dnf or yum and would install those that were not installed.

My mistake.