Bug 591488
Summary: | yum doesn't lock the rpmdb RW constantly, so rpm can remove installed packages that yum knows about (yum traceback) | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 6 | Reporter: | Petr Sklenar <psklenar> |
Component: | yum | Assignee: | James Antill <james.antill> |
Status: | CLOSED WONTFIX | QA Contact: | BaseOS QE Security Team <qe-baseos-security> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 6.1 | CC: | herrold, jhutar, pmatilai, slukasik |
Target Milestone: | rc | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | 476195 | Environment: | |
Last Closed: | 2010-11-23 19:24:54 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: | |||
Bug Depends On: | 476195 | ||
Bug Blocks: | 582655 |
Description
Petr Sklenar
2010-05-12 11:54:26 UTC
Given that it's a clone of a RHEL-5 bug, I'm going to remove the regression flag. Also this is line 65-66 of rpmsack: except StopIteration: raise Errors.PackageSackError, 'Rpmdb changed underneath us' ...which is what we said we'd do on: Additional comment from james.antill on 2009-03-25 02:28:07 EDT We might fix this for 6.1, certainly not for 6.0 though. Just adding full (not greped) traceback. It's slightly different from bug 476195. Loaded plugins: rhnplugin, versionlock This system is not registered with RHN. RHN support will be disabled. Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package test-aaa-1.i386 0:0-0 set to be updated ---> Package test-aaa-2.i386 0:0-0 set to be updated ---> Package test-aaa-3.i386 0:0-0 set to be updated ---> Package test-aaa-4.i386 0:0-0 set to be updated ---> Package test-aaa-5.i386 0:0-0 set to be updated ---> Package test-aaa-6.i386 0:0-0 set to be updated ---> Package test-aaa-7.i386 0:0-0 set to be updated ---> Package test-aaa-8.i386 0:0-0 set to be updated ---> Package test-aaa-9.i386 0:0-0 set to be updated Error: Rpmdb changed underneath us Traceback (most recent call last): File "/usr/bin/yum", line 29, in <module> yummain.user_main(sys.argv[1:], exit_code=True) File "/usr/share/yum-cli/yummain.py", line 254, in user_main errcode = main(args) File "/usr/share/yum-cli/yummain.py", line 174, in main if not base._rpmdb_warn_checks(out=verbose_logger.info, warn=False): File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 1143, in _rpmdb_warn_checks probs.extend(self.rpmdb.check_dependencies()) File "/usr/lib/python2.6/site-packages/yum/rpmsack.py", line 1295, in check_dependencies for rreq in pkg.requires: File "/usr/lib/python2.6/site-packages/yum/packages.py", line 508, in <lambda> requires = property(fget=lambda self: self.returnPrco('requires')) File "/usr/lib/python2.6/site-packages/yum/packages.py", line 1147, in returnPrco self._populatePrco() File "/usr/lib/python2.6/site-packages/yum/packages.py", line 1161, in _populatePrco hdr = self._get_hdr() File "/usr/lib/python2.6/site-packages/yum/rpmsack.py", line 66, in _get_hdr raise Errors.PackageSackError, 'Rpmdb changed underneath us' yum.Errors.PackageSackError: Rpmdb changed underneath us Also note that it happens with '--skip-broken' as well. And yes, it's not regression against rhel5.0. But it's regression against rhel5.5. Ok, so here are the problems: 1. We can't keep the headers around, because: i. It takes up way too much memory (why we dropped them in RHEL-5). ii. Very soon upstream rpm/yum should be moving to code where we don't even load the header once, for most packages. 2. We can't just "lock" the rpmdb, because then C-c doesn't work anymore (we'd need to hold the lock over downloads). ...which makes it "hard to fix". And even now it almost never happens. Combine that with the fact that yum will complain _very_ loudly in RHEL-6 if you start using rpm directly (even if yum isn't running at the same time). So given all of that, I'm going to just NAK this. If rpm adds a "lock the rpmdb from other users, but don't alter C-c" API ... then we could call that, feel free to reopen. Development Management has reviewed and declined this request. You may appeal this decision by reopening this request. |