On Thu, 03 Sep 2009 10:53:54 -0600
Philip Prindeville <philipp_subx(a)redfish-solutions.com> wrote:
Paul Howarth wrote:
> On 03/09/09 17:07, Philip Prindeville wrote:
>
>> Paul Howarth wrote:
>>
>>> On 02/09/09 22:52, Philip Prindeville wrote:
>>>
>>>
>>>> Seems to be an rpm versioning issue:
>>>>
>>>> [root@builder SRPMS]# mock -r fedora-10-x86_64 --rebuild
>>>> perl-Net-Patricia-1.15_01-1.fc9.src.rpm INFO: mock.py version
>>>> 0.9.14 starting... State Changed: init plugins
>>>> State Changed: start
>>>> INFO: Start(perl-Net-Patricia-1.15_01-1.fc9.src.rpm)
>>>> Config(fedora-10-x86_64) State Changed: lock buildroot
>>>> State Changed: clean
>>>> State Changed: init
>>>> State Changed: lock buildroot
>>>> Mock Version: 0.9.14
>>>> INFO: Mock Version: 0.9.14
>>>> INFO: enabled root cache
>>>> State Changed: unpacking root cache
>>>> INFO: enabled yum cache
>>>> State Changed: cleaning yum metadata
>>>> INFO: enabled ccache
>>>> State Changed: running yum
>>>> State Changed: setup
>>>> ERROR: Exception(perl-Net-Patricia-1.15_01-1.fc9.src.rpm)
>>>> Config(fedora-10-x86_64) 0 minutes 15 seconds INFO: Results
>>>> and/or logs in: /var/lib/mock/fedora-10-x86_64/result ERROR:
>>>> Command failed: # /usr/bin/yum
>>>> --installroot /var/lib/mock/fedora-10-x86_64/root/ resolvedep
>>>> ccache 'perl(ExtUtils::MakeMaker)' rpmdb: Program version 4.3
>>>> doesn't match environment version error: db4 error(-30974) from
>>>> dbenv->open: DB_VERSION_MISMATCH: Database environment version
>>>> mismatch error: cannot open Packages index using db3 - (-30974)
>>>> error: cannot open Packages database
>>>> in /var/lib/mock/fedora-10-x86_64/root/var/lib/rpm 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 229, in user_main
errcode
>>>> = main(args) File "/usr/share/yum-cli/yummain.py", line 84,
in
>>>> main base.getOptionsConfig(args) File
>>>> "/usr/share/yum-cli/cli.py", line 184, in getOptionsConfig
>>>> enabled_plugins=self.optparser._splitArg(opts.enableplugins))
>>>> File "/usr/lib/python2.5/site-packages/yum/__init__.py", line
>>>> 192, in _getConfig self._conf =
>>>> config.readMainConfig(startupconf) File
>>>> "/usr/lib/python2.5/site-packages/yum/config.py", line 774,
in
>>>> readMainConfig yumvars['releasever'] =
>>>> _getsysver(startupconf.installroot, startupconf.distroverpkg)
>>>> File "/usr/lib/python2.5/site-packages/yum/config.py", line
844,
>>>> in _getsysver idx = ts.dbMatch('provides', distroverpkg)
>>>> TypeError: rpmdb open failed
>>>>
>>>> [root@builder SRPMS]#
>>>>
>>>>
>>>>
>>>> The host was originally an FC8 host, that was yum updated to
>>>> FC9. I use it to build FC9 and FC10 packages via Mock.
>>>>
>>>> Unfortunately, it looks like it doesn't want to use the old RPM
>>>> database from the previous FC8 install.
>>>>
>>>> How do I clobber all of this to that the database gets written
>>>> afresh?
>>>>
>>>> Apparently, "mock -r fedora-10-x86_64 --clean" isn't
adequate.
>>>> Perhaps "mock --nuke" would be useful here following an
version
>>>> update to zap stale state?
>>>>
>>>> Or should I just uninstall and reinstall mock?
>>>>
>>>>
>>> I'd try this first:
>>>
>>> # rm -rf /var/lib/mock/fedora-10-x86_64/root
>>>
>>> Paul.
>>>
>>>
>>>
>> No joy:
>>
>> [root@builder SRPMS]# rm -rf /var/lib/mock/fedora-10-x86_64/root
>> [root@builder SRPMS]# mock -r fedora-10-x86_64 --init --rebuild
>> perl-Net-Patricia-1.15_01-1.fc9.src.rpm INFO: mock.py version
>> 0.9.14 starting... State Changed: init plugins
>> State Changed: start
>> INFO: Start(perl-Net-Patricia-1.15_01-1.fc9.src.rpm)
>> Config(fedora-10-x86_64) State Changed: lock buildroot
>> State Changed: clean
>> State Changed: init
>> State Changed: lock buildroot
>> Mock Version: 0.9.14
>> INFO: Mock Version: 0.9.14
>> INFO: enabled root cache
>> State Changed: unpacking root cache
>> INFO: enabled yum cache
>> State Changed: cleaning yum metadata
>> INFO: enabled ccache
>> State Changed: running yum
>> State Changed: setup
>> ERROR: Exception(perl-Net-Patricia-1.15_01-1.fc9.src.rpm)
>> Config(fedora-10-x86_64) 0 minutes 30 seconds INFO: Results and/or
>> logs in: /var/lib/mock/fedora-10-x86_64/result ERROR: Command
>> failed: # /usr/bin/yum
>> --installroot /var/lib/mock/fedora-10-x86_64/root/ resolvedep
>> ccache 'perl(ExtUtils::MakeMaker)' rpmdb: Program version 4.3
>> doesn't match environment version error: db4 error(-30974) from
>> dbenv->open: DB_VERSION_MISMATCH: Database environment version
>> mismatch error: cannot open Packages index using db3 - (-30974)
>> error: cannot open Packages database
>> in /var/lib/mock/fedora-10-x86_64/root/var/lib/rpm 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 229, in user_main errcode =
>> main(args) File "/usr/share/yum-cli/yummain.py", line 84, in main
>> base.getOptionsConfig(args) File "/usr/share/yum-cli/cli.py", line
>> 184, in getOptionsConfig
>> enabled_plugins=self.optparser._splitArg(opts.enableplugins)) File
>> "/usr/lib/python2.5/site-packages/yum/__init__.py", line 192, in
>> _getConfig self._conf = config.readMainConfig(startupconf) File
>> "/usr/lib/python2.5/site-packages/yum/config.py", line 774, in
>> readMainConfig yumvars['releasever'] =
>> _getsysver(startupconf.installroot, startupconf.distroverpkg) File
>> "/usr/lib/python2.5/site-packages/yum/config.py", line 844, in
>> _getsysver idx = ts.dbMatch('provides', distroverpkg) TypeError:
>> rpmdb open failed
>>
>> [root@builder SRPMS]#
>>
>>
>>
>> Could the root cache be broken?
>>
>
> Likely: try:
>
> # rm -rf /var/lib/mock/fedora-10-x86_64
>
> Paul.
>
>
No joy:
[root@builder SRPMS]# rm -rf /var/lib/mock/fedora-10-x86_64
[root@builder SRPMS]#
[root@builder SRPMS]# mock -r fedora-10-x86_64 --init --rebuild
perl-Net-Patricia-1.15_01-1.fc9.src.rpm INFO: mock.py version 0.9.14
starting... State Changed: init plugins
State Changed: start
INFO: Start(perl-Net-Patricia-1.15_01-1.fc9.src.rpm)
Config(fedora-10-x86_64) State Changed: lock buildroot
State Changed: clean
State Changed: init
State Changed: lock buildroot
Mock Version: 0.9.14
INFO: Mock Version: 0.9.14
INFO: enabled root cache
State Changed: unpacking root cache
INFO: enabled yum cache
State Changed: cleaning yum metadata
INFO: enabled ccache
State Changed: running yum
State Changed: setup
ERROR: Exception(perl-Net-Patricia-1.15_01-1.fc9.src.rpm)
Config(fedora-10-x86_64) 0 minutes 13 seconds INFO: Results and/or
logs in: /var/lib/mock/fedora-10-x86_64/result ERROR: Command failed:
# /usr/bin/yum --installroot /var/lib/mock/fedora-10-x86_64/root/
resolvedep ccache 'perl(ExtUtils::MakeMaker)' rpmdb: Program
version 4.3 doesn't match environment version error: db4
error(-30974) from dbenv->open: DB_VERSION_MISMATCH: Database
environment version mismatch error: cannot open Packages index using
db3 - (-30974) error: cannot open Packages database
in /var/lib/mock/fedora-10-x86_64/root/var/lib/rpm 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 229, in user_main errcode =
main(args) File "/usr/share/yum-cli/yummain.py", line 84, in main
base.getOptionsConfig(args)
File "/usr/share/yum-cli/cli.py", line 184, in getOptionsConfig
enabled_plugins=self.optparser._splitArg(opts.enableplugins))
File "/usr/lib/python2.5/site-packages/yum/__init__.py", line 192,
in _getConfig self._conf = config.readMainConfig(startupconf)
File "/usr/lib/python2.5/site-packages/yum/config.py", line 774, in
readMainConfig yumvars['releasever'] =
_getsysver(startupconf.installroot, startupconf.distroverpkg) File
"/usr/lib/python2.5/site-packages/yum/config.py", line 844, in
_getsysver idx = ts.dbMatch('provides', distroverpkg) TypeError:
rpmdb open failed
[root@builder SRPMS]#
What if the data that's being unpacked from the root cache is broken?
It will be the same each time...
True. I was forgetting that the cache isn't under /var/lib/mock any
more. Try deleting the root cache. And as Panu suggested, don't run
mock as root.
Paul.