Bug 483633

Summary: "yum update perl" breaks in my configuration
Product: [Fedora] Fedora Reporter: Stepan Kasal <kasal>
Component: yumAssignee: Seth Vidal <skvidal>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: urgent    
Version: rawhideCC: cybersonic0, ffesti, james.antill, jarmstrong, katzj, pmatilai, tim.lauridsen
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-07-13 17:45:18 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
verbose log none

Description Stepan Kasal 2009-02-02 17:45:40 UTC
Created attachment 330656 [details]
verbose log

"yum update perl" is not able to resolve dependencies on my machine.
See the attached output of "yum -v update perl 2>&1".

Forgive me that I set the priority to "urgent"; the situation is probably volatile and I may need to update my machine eventually, so there is only a limited time when I can provide details about the configuration that triggered the error.

(The error message tells me to report to yum.baseurl.org/report.  Well, I'm disciplined and applied for an account there.  I might even file a Trac ticket tomorrow, if the answer arrives until then.  But wouldn't it be better if Fedora's yum directed people to b.r.c?)

Comment 1 Stepan Kasal 2009-02-02 17:50:43 UTC
Update:
I've updated yum to 3.2.21-7.fc11 and uninstalled yum-allowdowngrade, so that I have no plugin installed.  The bug is still present.

Comment 2 James Antill 2009-02-02 19:18:44 UTC
 Looking at what is in rawhide atm. I see:

% repoquery  --repoid=rawhide perl-version           
perl-version-3:0.74-54.fc11.x86_64
% repoquery  --repoid=rawhide perl
perl-4:5.10.0-54.fc11.x86_64
perl-4:5.10.0-54.fc11.i386
% repoquery  --repoid=rawhide --requires perl-version             
perl = 4:5.10.0-54.fc11
perl >= 5.005_04
perl(strict)
perl(vars)
% repoquery --provides --repoid=rawhide perl | fgrep -v '(' | fgrep perl
perl = 4:5.10.0-54.fc11
perl-File-Temp = 0.20
perl-TAP-Harness = 3.10
perl = 4:5.10.0-54.fc11
perl-File-Temp = 0.20
perl-TAP-Harness = 3.10

...which suggests that all the perl stuff should have come in due to old "perl = <version>" problems.
 Can you run:

rpm -q perl-version --requires


 At a guess it might be the double versioned requirements that is triggering the bug.

Comment 3 Stepan Kasal 2009-02-02 19:35:25 UTC
> Can you run: rpm -q perl-version --requires

$ rpm -q perl-version --requires
perl >= 0:5.005_04
perl = 4:5.10.0-52.fc11
perl(strict)  
perl(vars)  
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(VersionedDependencies) <= 3.0.3-1
$ rpm -q perl
perl-5.10.0-53.fc11.i386

Indeed, it seems I currently do have unresolved dependencies.
Most of the packages from perl.spec are -52.fc11, except for perl and perl-libs, which are release -53.fc11.

> ...which suggests that all the perl stuff should have come in

Agreed, it should.  IMHO the depsolver should come to that conclusion even though there are currently broken dependencies.

I realize that the depsolver asks "who else needs perl-5.10.0-53.fc11?" and gets teh answer: "no one".  But IMVHO it should ask "who depends on any perl-*-*?" and then all those broken deps would be discovered and satisfied.  Are there another consequences which I'm not aware of?

Comment 4 James Antill 2009-02-02 21:34:52 UTC
Can you confirm that:

yum update perl\*

...updates everything? Also what does "yum --version" say?

Comment 5 Stepan Kasal 2009-02-03 13:54:55 UTC
> yum update perl\* ...updates everything?

Yes, this is about to update all the packages.  (The transaction check has not been performed, because I have answered "N" to the question, as I don't know about a convenient way to roll back.)

$ yum --version
3.2.21
  Installed: yum-3.2.21-7.fc11.noarch at 2009-02-02 17:47
  Built    : Fedora Project at 2009-01-29 17:01
  Committed: Seth Vidal <skvidal at fedoraproject.org> at 2009-01-29 22:00

  Installed: yum-metadata-parser-1.1.2-11.fc11.i386 at 2008-12-15 12:56
  Built    : Fedora Project at 2008-11-29 05:09
  Committed: Ignacio Vazquez-Abrams <ivazqueznet+rpm> at 2008-11-29 22:00

  Installed: rpm-4.6.0-0.rc4.2.fc11.i386 at 2009-02-03 13:51
  Built    : Fedora Project at 2009-01-31 11:55
  Committed: Panu Matilainen <pmatilai> at 2009-01-31 22:00

Comment 6 James Antill 2009-02-05 15:58:08 UTC
 Can you paste the output from: yum list installed perl\*

Comment 7 seth vidal 2009-03-03 21:16:29 UTC
re-ping on the needed info.

Comment 8 seth vidal 2009-03-12 16:33:40 UTC
re-ping.

Comment 9 Stepan Kasal 2009-03-24 16:54:31 UTC
(In reply to comment #6)
>  Can you paste the output from: yum list installed perl\*  

Sorry for the delay, I supposed that comment #3 gives all the necessary clues, and happily updated my computer.
Attached below please find the current list, where the bug does not appear.
To get an output similar to what I had back then, please replace all "-58.fc11" by "-52.fc11" except for "perl" and "perl-libs" which were "-53.fc11".

If this emulation is not enough, I can try to reproduce the bug again and then sent a real output of the command.

Installed Packages
perl.i386                                   4:5.10.0-58.fc11           installed
perl-Algorithm-Annotate.noarch              0.10-6.fc9                 installed
perl-Algorithm-Diff.noarch                  1.1902-6.fc9               installed
perl-App-CLI.noarch                         0.07-4.fc9                 installed
perl-Archive-Extract.i386                   1:0.24-58.fc11             installed
perl-Archive-Tar.i386                       1.40-58.fc11               installed
perl-Archive-Zip.noarch                     1.23-1.fc10                installed
perl-Authen-SASL.noarch                     2.12-2.fc11                installed
perl-CPANPLUS.i386                          0.84-58.fc11               installed
perl-Class-Accessor.noarch                  0.31-4.fc9                 installed
perl-Class-Autouse.noarch                   1.29-3.fc9                 installed
perl-Class-Data-Inheritable.noarch          0.06-4.fc9                 installed
perl-Class-Inspector.noarch                 1.23-1.fc10                installed
perl-Class-Singleton.noarch                 1.4-3.fc9                  installed
perl-Clone.i586                             0.28-5.fc11                installed
perl-Compress-Raw-Zlib.i386                 2.008-58.fc11              installed
perl-Compress-Zlib.i386                     2.008-58.fc11              installed
perl-DBD-MySQL.i386                         4.005-8.fc9                installed
perl-DBD-SQLite.i386                        1.14-7.fc9                 installed
perl-DBI.i386                               1.607-1.fc10               installed
perl-Data-Hierarchy.noarch                  0.34-4.fc9                 installed
perl-Date-Manip.noarch                      5.54-1.fc11                installed
perl-DateTime.i386                          1:0.4501-1.fc11            installed
perl-Devel-Symdump.noarch                   1:2.07-5.fc9               installed
perl-Digest-HMAC.noarch                     1.01-20.fc11               installed
perl-Digest-SHA1.i586                       2.11-8.fc11                installed
perl-Email-Abstract.noarch                  2.134-3.fc9                installed
perl-Email-Date.noarch                      1.103-4.fc10               installed
perl-Email-Date-Format.noarch               1.002-2.fc9                installed
perl-Email-Simple.noarch                    2.003-3.fc9                installed
perl-Error.noarch                           1:0.17015-1.fc10           installed
perl-ExtUtils-CBuilder.i386                 1:0.21-58.fc11             installed
perl-ExtUtils-MakeMaker.i386                6.36-58.fc11               installed
perl-ExtUtils-ParseXS.i386                  1:2.18-58.fc11             installed
perl-File-Copy-Recursive.noarch             0.38-1.fc11                installed
perl-File-Fetch.i386                        0.14-58.fc11               installed
perl-File-Find-Rule.noarch                  0.30-6.fc9                 installed
perl-File-Find-Rule-Perl.noarch             1.04-2.fc10                installed
perl-File-Find-Rule-VCS.noarch              1.05-1.fc11                installed
perl-File-HomeDir.noarch                    0.67-3.fc9                 installed
perl-File-Next.noarch                       1.02-2.fc9                 installed
perl-File-Remove.noarch                     1.42-1.fc10                installed
perl-File-ShareDir.noarch                   1.00-1.fc10                installed
perl-File-ShareDir-PAR.noarch               0.03-1.fc11                installed
perl-File-Slurp.noarch                      9999.13-4.fc10             installed
perl-File-Which.noarch                      0.05-4.fc9                 installed
perl-File-chdir.noarch                      0.09-2.fc9                 installed
perl-FreezeThaw.noarch                      0.43-6.fc9                 installed
perl-GSSAPI.i586                            0.26-2.fc11                installed
perl-Git.noarch                             1.6.2-1.fc11               installed
perl-HTML-Parser.i386                       3.56-5.fc9                 installed
perl-HTML-Tagset.noarch                     3.10-8.fc9                 installed
perl-IO-Compress-Base.i386                  2.008-58.fc11              installed
perl-IO-Compress-Zlib.i386                  2.008-58.fc11              installed
perl-IO-Digest.noarch                       0.10-6.fc9                 installed
perl-IO-Socket-SSL.noarch                   1.18-1.fc11                installed
perl-IO-String.noarch                       1.08-5.fc9                 installed
perl-IO-Zlib.i386                           1:1.07-58.fc11             installed
perl-IPC-Cmd.i386                           1:0.42-58.fc11             installed
perl-List-MoreUtils.i386                    0.22-6.fc9                 installed
perl-Locale-Maketext-Simple.i386            1:0.18-58.fc11             installed
perl-Log-Message.i386                       1:0.01-58.fc11             installed
perl-Log-Message-Simple.i386                0.04-58.fc11               installed
perl-Module-Build.i386                      1:0.2808-58.fc11           installed
perl-Module-CoreList.i386                   2.15-58.fc11               installed
perl-Module-Extract.noarch                  0.01-2.fc10                installed
perl-Module-Inspector.noarch                1.05-3.fc10                installed
perl-Module-Install.noarch                  0.77-1.fc11                installed
perl-Module-Load.i386                       1:0.12-58.fc11             installed
perl-Module-Load-Conditional.i386           0.24-58.fc11               installed
perl-Module-Loaded.i386                     1:0.01-58.fc11             installed
perl-Module-Manifest.noarch                 0.03-1.fc10                installed
perl-Module-Math-Depends.noarch             0.02-2.fc10                installed
perl-Module-Pluggable.i386                  1:3.60-58.fc11             installed
perl-Module-ScanDeps.noarch                 0.89-1.fc11                installed
perl-Module-Starter.noarch                  1:1.50-2.fc11              installed
perl-Net-LibIDN.i386                        0.10-2.fc9                 installed
perl-Net-SMTP-SSL.noarch                    1.01-1.fc11                installed
perl-Net-SSLeay.i386                        1.35-1.fc10                installed
perl-Number-Compare.noarch                  0.01-10.fc9                installed
perl-ORLite.noarch                          0.15-1.fc11                installed
perl-Object-Accessor.i386                   1:0.32-58.fc11             installed
perl-PAR.noarch                             0.983-2.fc10               installed
perl-PAR-Dist.noarch                        0.40-1.fc11                installed
perl-PPI.noarch                             1.203-1.fc10               installed
perl-Package-Constants.i386                 1:0.01-58.fc11             installed
perl-Params-Check.i386                      1:0.26-58.fc11             installed
perl-Params-Util.i386                       0.35-1.fc11                installed
perl-Params-Validate.i386                   0.91-1.fc10                installed
perl-Parse-Yapp.noarch                      1.05-38.fc9                installed
perl-Path-Class.noarch                      0.16-3.fc9                 installed
perl-PerlIO-eol.i386                        0.14-4.fc9                 installed
perl-PerlIO-via-dynamic.noarch              0.12-4.fc9                 installed
perl-PerlIO-via-symlink.noarch              0.05-5.fc9                 installed
perl-Pod-Coverage.noarch                    0.19-3.fc9                 installed
perl-Pod-Escapes.i386                       1:1.04-58.fc11             installed
perl-Pod-POM.noarch                         0.17-10.fc10               installed
perl-Pod-Simple.i386                        1:3.07-58.fc11             installed
perl-Probe-Perl.noarch                      0.01-1.fc10                installed
perl-SGMLSpm.noarch                         1.03ii-18.fc9              installed
perl-SVK.noarch                             2.0.2-3.fc9                installed
perl-SVN-Mirror.noarch                      0.73-3.fc9                 installed
perl-SVN-Simple.noarch                      0.27-6.fc9                 installed
perl-Sub-Uplevel.noarch                     0.2002-1.fc11              installed
perl-Term-ReadLine-Gnu.i386                 1.17a-4.fc10               installed
perl-Term-UI.i386                           0.18-58.fc11               installed
perl-TermReadKey.i386                       2.30-6.fc9                 installed
perl-Test-Exception.noarch                  0.27-2.fc9                 installed
perl-Test-Harness.i386                      3.12-58.fc11               installed
perl-Test-NoWarnings.noarch                 0.084-3.fc9                installed
perl-Test-Pod.noarch                        1.26-4.fc9                 installed
perl-Test-Pod-Coverage.noarch               1.08-6.fc10                installed
perl-Test-Simple.i386                       0.80-58.fc11               installed
perl-Text-Diff.noarch                       0.35-6.fc9                 installed
perl-Text-Glob.noarch                       0.08-4.fc9                 installed
perl-Time-Piece.i386                        1.12-58.fc11               installed
perl-TimeDate.noarch                        1:1.16-9.fc10              installed
perl-UNIVERSAL-require.noarch               0.11-4.fc9                 installed
perl-URI.noarch                             1.35-8.fc9                 installed
perl-Wx.i386                                0.89-1.fc11                installed
perl-Wx-Perl-Dialog.noarch                  0.03-1.fc11                installed
perl-Wx-Perl-ProcessStream.noarch           0.11-1.fc10                installed
perl-XML-LibXML.i586                        1:1.69-2.fc11              installed
perl-XML-LibXML-Common.i586                 0.13-14.fc11               installed
perl-XML-NamespaceSupport.noarch            1.09-5.fc11                installed
perl-XML-SAX.noarch                         0.96-2.fc11                installed
perl-YAML-Syck.i386                         1.05-1.fc10                installed
perl-YAML-Tiny.noarch                       1.32-1.fc10                installed
perl-devel.i386                             4:5.10.0-58.fc11           installed
perl-gettext.i386                           1.05-13.fc10               installed
perl-libs.i386                              4:5.10.0-58.fc11           installed
perl-libwww-perl.noarch                     5.817-1.fc10               installed
perl-suidperl.i386                          4:5.10.0-58.fc11           installed
perl-version.i386                           3:0.74-58.fc11             installed

Comment 10 Stepan Kasal 2009-03-25 12:06:26 UTC
OK, I reproduced the bug today.
First, I ran  yum update "*yum*" "*rpm*'  to make sure that the relevant software is up to date; have I missed something.

Then I reproduced the bug, removed all perl modules that were not needed, and verified that the bug is still there.

So here is the answer to your question:
$ yum list installed perl\*
Installed Packages
perl.i386                   4:5.10.0-56.fc11 installed
perl-DBD-MySQL.i386         4.005-8.fc9      installed
perl-DBI.i386               1.607-1.fc10     installed
perl-Date-Manip.noarch      5.54-1.fc11      installed
perl-Error.noarch           1:0.17015-1.fc10 installed
perl-File-Next.noarch       1.02-2.fc9       installed
perl-Git.noarch             1.6.2-1.fc11     installed
perl-HTML-Parser.i386       3.56-5.fc9       installed
perl-HTML-Tagset.noarch     3.10-8.fc9       installed
perl-Module-Pluggable.i386  1:3.60-58.fc11   installed
perl-Pod-Escapes.i386       1:1.04-58.fc11   installed
perl-Pod-Simple.i386        1:3.07-58.fc11   installed
perl-SGMLSpm.noarch         1.03ii-18.fc9    installed
perl-TermReadKey.i386       2.30-6.fc9       installed
perl-URI.noarch             1.35-8.fc9       installed
perl-libs.i386              4:5.10.0-56.fc11 installed
perl-version.i386           3:0.74-58.fc11   installed

Comment 11 Bug Zapper 2009-06-09 11:02:06 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 11 development cycle.
Changing version to '11'.

More information and reason for this action is here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 12 Stepan Kasal 2009-06-15 11:58:22 UTC
(In reply to comment #11)
> reported against 'rawhide' during the Fedora 11 development cycle.

Sure, but it is still alive end well.  This time I experienced this with sqlite:

# rpm -qa 'sqlite*'
sqlite-3.6.12-1.fc11.i586
sqlite-devel-3.6.14-2.fc12.i586
# yum update sqlite
[...]
---> Package sqlite.i586 0:3.6.14.2-1.fc12 set to be updated
[...]
Install      0 Package(s)
Update       1 Package(s)
Remove       0 Package(s)
[...]
Running rpm_check_debug
ERROR with rpm_check_debug vs depsolve:
sqlite = 3.6.14-2.fc12 is needed by (installed) sqlite-devel-3.6.14-2.fc12.i586
Complete!
(1, [u'Please report this error in http://yum.baseurl.org/report'])

> Changing version to '11'.

Don't do it.  I reverted that change and added magic key "FutureFeature" to prevent repeating of the incident.

Comment 13 seth vidal 2009-06-15 12:08:44 UTC
And you're getting this on which version of yum?

Comment 14 James Antill 2009-06-15 14:14:10 UTC
# rpm -qa 'sqlite*'
sqlite-3.6.12-1.fc11.i586
sqlite-devel-3.6.14-2.fc12.i586

...this means you're rpmdb is foobar, because the above can't happen (sqlite-devel requires it's exact version of sqlite). My guess is you want to run:

 package-cleanup --problems
 package-cleanup --dupes
 rpm -Va --nofiles --nodigest

Comment 15 seth vidal 2009-07-10 23:12:19 UTC
ping? status needed - this feels like a notabug - but I'd appreciate some feedback.

Comment 16 Stepan Kasal 2009-07-13 15:24:36 UTC
(In reply to comment #13)
> And you're getting this on which version of yum?

yum-3.2.23-9.fc12

Previously observed with:
yum-3.2.21-7.fc11
yum-3.2.23-3.fc12

(In reply to comment #15)
> this feels like a notabug

I wouldn't say so.  Let me explain.

First, the problem can appear only if the rpm db contains unsatisfied dependences.  So, being strict, one might say: "the dependecies were broken, the behavior is undefined, hence notabug".  But I think that even in this situation, yum should do better.

Description of the problem:
- Packages A-1.0 and B-2.0 are both installed.
- B requires "A = 2.0", which is a broken dependency.
- The latest versions in the repo are A-3.0 and B-3.0

Run "yum update A".
The depsolver find about A-3.0, yum downloads it.
Then rpm_check_debug is run and it find out the broken dependency between A and B.

I think that the depsolver should find out about the problem that is going to happen and update B as well.

A naive analysis:
It seems that currently the depsolver asks the question "Who requires A-1.0?"; the answer is "no one," of course.
But the depsolver could instead ask "What are all the versioned requires of A?", then filter those that are going to break and try to update the corresponding packages.

Comment 17 James Antill 2009-07-13 17:45:18 UTC
 What happens is this:

yum update A

1. yum sees that A provides A-1.0
2a. yum asks does anything require A-1.0
2b. yum gets answer "no", because B requires A-2.0
3. yum comes to the conclusion that upgrading A will not affect anything else.

...in general we aren't going to fix this because our advise is "don't install stuff with --nodeps".
 However if you do "yum reinstall B" or "yum update B" yum will probably fix everything.