Bug 577069 - Loss of capability to add, remove or update packages
Summary: Loss of capability to add, remove or update packages
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: pirut
Version: 5.6
Hardware: i386
OS: Linux
low
urgent
Target Milestone: rc
: ---
Assignee: James Antill
QA Contact: Red Hat Satellite QA List
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-03-26 00:51 UTC by Fernando Mansito
Modified: 2013-03-14 19:18 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-03-14 19:18:29 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Fernando Mansito 2010-03-26 00:51:32 UTC
Description of problem: This is the bug log as prepared by the add/remove app:

Component: pirut
Summary: TBd2ec4f0a config.py:877:_getsysver:TypeError: rpmdb open failed

Traceback (most recent call last):
  File "/usr/sbin/pup", line 617, in ?
    main()
  File "/usr/sbin/pup", line 609, in main
    pup = PackageUpdater(not options.autoapply, options.config)
  File "/usr/sbin/pup", line 84, in __init__
    GraphicalYumBase.__init__(self, False, config)
  File "/usr/lib/python2.4/site-packages/pirut/__init__.py", line 137, in __init__
    plugin_types=(yum.plugins.TYPE_CORE,))
  File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 170, in doConfigSetup
    return self.conf
  File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 664, in <lambda>
    conf = property(fget=lambda self: self._getConfig(),
  File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 239, in _getConfig
    self._conf = config.readMainConfig(startupconf)
  File "/usr/lib/python2.4/site-packages/yum/config.py", line 804, in readMainConfig
    yumvars['releasever'] = _getsysver(startupconf.installroot, startupconf.distroverpkg)
  File "/usr/lib/python2.4/site-packages/yum/config.py", line 877, in _getsysver
    idx = ts.dbMatch('provides', distroverpkg)
TypeError: rpmdb open failed

Local variables in innermost frame:
installroot: /
ts: <rpmUtils.transaction.TransactionWrapper instance at 0x940476c>
distroverpkg: redhat-release

The bug maims the installation without remedy by crashing upgrade, add/remove, yum and yumex. It appears very early after installation, usually when you need several packages to install one, or when you do a list of updates. The above log appeared after installing the packages for using ntfs, and showed when, after installation, yumex tried to process the (long: the first general update was still pending) list of updates.

Unless the team can find a manual way of installing a patch, even for testing any solution the installation will have to be made anew from scratch, you see that from the list of programs destroyed. A little angel, as you may understand.

Version-Release number of selected component (if applicable): CentOS 5.4 final, kernel 2.6.18-164.el5PAE.

How reproducible

No way to install anything, and if you repeat the installation, it spoils it as soon as it can. Has done it five installations in a row, a full week work lost
 completely.

Steps to Reproduce:
1. Ask you installation to install several programs or do a general update.
2.
3.
  
Actual results: see above


Expected results: see above
Additional info: Better not to ask, as you can imagine. Will also file abug with the CentOS team asap.

Comment 1 James Antill 2010-03-26 14:27:25 UTC
    idx = ts.dbMatch('provides', distroverpkg)
TypeError: rpmdb open failed

...this usually means something is holding some kind of lock on the rpmdb, often it's a stale lock.
 I'd reboot and run:

1. rm -f /var/lib/rpm/__db*
2. rpm --rebuilddb.

...which should fix rpm.

Comment 2 Fernando Mansito 2010-03-29 22:40:46 UTC
Dear Mr. Alvill,

Thank you very nuch for your advice. I have rebuilt the database as you suggested and my management system (updates, add/remove programs) is now up again,

I'm asking myself whether database corruption for seemingly unfathomable reasons and that does not require any processing but erasing all extant databases indiscriminately and a no-detail rebuild should perhaps be directly managed by yum so as to spare users, specially newbies, such serious problems (I for one have been pushed to reinstalling CentOS once and again for one week) for so little to program. Could not that be tackled in, for example, the next yum update?

Thanks again and best regards,
fernando mansito

Comment 3 matteo rossi 2011-06-05 19:27:11 UTC
Component: pirut
Summary: TBc0c9275d config.py:680:_getsysver:TypeError: rpmdb open failed

Traceback (most recent call last):
  File "/usr/sbin/pirut", line 476, in <module>
    main()
  File "/usr/sbin/pirut", line 469, in main
    pm = PackageManager(options.config, options.onlyrepo)
  File "/usr/sbin/pirut", line 63, in __init__
    GraphicalYumBase.__init__(self, False, config)
  File "/usr/lib/python2.5/site-packages/pirut/__init__.py", line 129, in __init__
    plugin_types=(yum.plugins.TYPE_CORE,))
  File "/usr/lib/python2.5/site-packages/yum/__init__.py", line 113, in doConfigSetup
    errorlevel=errorlevel)
  File "/usr/lib/python2.5/site-packages/yum/__init__.py", line 159, in _getConfig
    self._conf = config.readMainConfig(startupconf)
  File "/usr/lib/python2.5/site-packages/yum/config.py", line 613, in readMainConfig
    yumvars['releasever'] = _getsysver(startupconf.installroot, startupconf.distroverpkg)
  File "/usr/lib/python2.5/site-packages/yum/config.py", line 680, in _getsysver
    idx = ts.dbMatch('provides', distroverpkg)
TypeError: rpmdb open failed

Local variables in innermost frame:
installroot: /
ts: <rpmUtils.transaction.TransactionWrapper instance at 0x85c1f6c>
distroverpkg: redhat-release

Comment 4 James Antill 2013-03-14 19:18:29 UTC
As before, the advice in comment #1 will often solve this problem. As an RFE to automatically fix it...

This request was evaluated by Red Hat Engineering for inclusion in a Red 
Hat Enterprise Linux maintenance release.

Red Hat does not currently plan to provide this change in a Red Hat 
Enterprise Linux update release for currently deployed products.

With the goal of minimizing risk of change for deployed systems, and in 
response to customer and partner requirements, Red Hat takes a 
conservative approach when evaluating enhancements for inclusion in 
maintenance updates for currently deployed products. The primary 
objectives of update releases are to enable new hardware platform 
support and to resolve critical defects.


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