Bug 483633 - "yum update perl" breaks in my configuration
"yum update perl" breaks in my configuration
Product: Fedora
Classification: Fedora
Component: yum (Show other bugs)
All Linux
urgent Severity medium
: ---
: ---
Assigned To: Seth Vidal
Fedora Extras Quality Assurance
: FutureFeature
Depends On:
  Show dependency treegraph
Reported: 2009-02-02 12:45 EST by Stepan Kasal
Modified: 2014-01-21 18:07 EST (History)
7 users (show)

See Also:
Fixed In Version:
Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2009-07-13 13:45:18 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
verbose log (73.90 KB, text/plain)
2009-02-02 12:45 EST, Stepan Kasal
no flags Details

  None (edit)
Description Stepan Kasal 2009-02-02 12:45:40 EST
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 12:50:43 EST
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 14:18:44 EST
 Looking at what is in rawhide atm. I see:

% repoquery  --repoid=rawhide perl-version           
% repoquery  --repoid=rawhide perl
% repoquery  --repoid=rawhide --requires perl-version             
perl = 4:5.10.0-54.fc11
perl >= 5.005_04
% 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 14:35:25 EST
> 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
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(VersionedDependencies) <= 3.0.3-1
$ rpm -q perl

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 16:34:52 EST
Can you confirm that:

yum update perl\*

...updates everything? Also what does "yum --version" say?
Comment 5 Stepan Kasal 2009-02-03 08:54:55 EST
> 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
  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@gmail.com> 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@redhat.com> at 2009-01-31 22:00
Comment 6 James Antill 2009-02-05 10:58:08 EST
 Can you paste the output from: yum list installed perl\*
Comment 7 seth vidal 2009-03-03 16:16:29 EST
re-ping on the needed info.
Comment 8 seth vidal 2009-03-12 12:33:40 EDT
Comment 9 Stepan Kasal 2009-03-24 12:54:31 EDT
(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 08:06:26 EDT
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 07:02:06 EDT
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:
Comment 12 Stepan Kasal 2009-06-15 07:58:22 EDT
(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*'
# yum update sqlite
---> Package sqlite.i586 0: 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
(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 08:08:44 EDT
And you're getting this on which version of yum?
Comment 14 James Antill 2009-06-15 10:14:10 EDT
# rpm -qa 'sqlite*'

...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 19:12:19 EDT
ping? status needed - this feels like a notabug - but I'd appreciate some feedback.
Comment 16 Stepan Kasal 2009-07-13 11:24:36 EDT
(In reply to comment #13)
> And you're getting this on which version of yum?


Previously observed with:

(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 13:45:18 EDT
 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.

Note You need to log in before you can comment on or make changes to this bug.