rpm/mock: can't upbuild FC10 targets on FC9 host

Paul Howarth paul at city-fan.org
Thu Sep 3 21:20:38 UTC 2009


On Thu, 03 Sep 2009 10:53:54 -0600
Philip Prindeville <philipp_subx at 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 at 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 at 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 at builder SRPMS]# rm -rf /var/lib/mock/fedora-10-x86_64/root
> >> [root at 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 at builder SRPMS]#
> >>
> >>
> >>
> >> Could the root cache be broken?
> >>     
> >
> > Likely: try:
> >
> > # rm -rf /var/lib/mock/fedora-10-x86_64
> >
> > Paul.
> >
> >   
> 
> No joy:
> 
> [root at builder SRPMS]# rm -rf /var/lib/mock/fedora-10-x86_64
> [root at builder SRPMS]# 
> [root at 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 at 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.




More information about the fedora-devel-list mailing list