This service will be undergoing maintenance at 03:30 UTC, 2016-05-27. It is expected to last about 2 hours
Bug 577069 - Loss of capability to add, remove or update packages
Loss of capability to add, remove or update packages
Status: CLOSED WONTFIX
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: pirut (Show other bugs)
5.6
i386 Linux
low Severity urgent
: rc
: ---
Assigned To: James Antill
Red Hat Satellite QA List
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2010-03-25 20:51 EDT by Fernando Mansito
Modified: 2013-03-14 15:18 EDT (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2013-03-14 15:18:29 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)

  None (edit)
Description Fernando Mansito 2010-03-25 20:51:32 EDT
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 10:27:25 EDT
    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 18:40:46 EDT
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 15:27:11 EDT
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 15:18:29 EDT
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.