Ticket #186 (new defect)

Opened 6 months ago

Last modified 4 days ago

--preload-vdb-state crashes

Reported by: dberkholz Owned by: ferringb
Priority: normal Milestone:
Component: resolver Version: 0.4.7.2
Keywords: Cc: psychotical@…

Description (last modified by ferringb) (diff)

donnie@comet $ pmerge --ignore-failures -F portage-verbose-formatter -pDus world --preload-vdb-state
 * Preloading vdb... 
Traceback (most recent call last):
  File "/usr/bin/pmerge", line 36, in <module>
    commandline.main(subcommands)
  File "/usr/lib64/python2.5/site-packages/pkgcore/util/commandline.py", line 401, in main
    exitstatus = main_func(options, out, err)
  File "/usr/lib64/python2.5/site-packages/pkgcore/scripts/pmerge.py", line 464, in main
    resolver_inst.load_vdb_state()
  File "/usr/lib64/python2.5/site-packages/pkgcore/resolver/plan.py", line 325, in load_vdb_state
    (pkg.versioned_atom, ret))
Exception: couldn't load vdb state, =app-emulation/virtinst-0.300.3 ([<atom =app-emulation/virtinst-0.300.3 @#208add0>, <atom >=app-emulation/libvirt-0.2.1 @#208ae90>, <atom app-emulation/qemu @#209c050>, <atom ~app-emulation/qemu-softmmu-0.9.1 @#209c1d0>], <pkgcore.resolver.plan.resolver_frame object at 0x18d1478>)

PS -- I chose 0.4.7.1 for the version although 0.4.7.2 is what I'm using.

Attachments

pkgcore-0.4.7.2-preload-vdb-debug.txt.bz2 (28.5 kB) - added by dberkholz 6 months ago.
pkgcore-0.4.7.2-preload-vdb-debug.txt.bz2

Change History

Changed 6 months ago by dberkholz

pkgcore-0.4.7.2-preload-vdb-debug.txt.bz2

comment:1 Changed 6 months ago by cardoe

  • version changed from 0.4.7.1 to 0.4.7.2

comment:2 Changed 6 months ago by ferringb

  • description modified (diff)

comment:3 Changed 5 months ago by masterdriverz

  • owner set to ferringb
  • component changed from pkgcore to resolver

comment:4 Changed 4 days ago by nexon

  • cc psychotical@… added

It seems this bug is encountered only when using the replace_resolver, so something in the code of pkgcore.ebuild.resolver.generate_replace_resolver_kls() is weird.

Possibly has something to do with _vdb_restrict that is defined further up, and is used when generating the replace_resolver. Doesn't seem like that code is used anywhere else, and it looks a bit weird, saying that the atom is either a package that's not installed or a virtual?:

_vdb_restrict = packages.OrRestriction(
    packages.PackageRestriction("repo.livefs", values.EqualityMatch(False)),
    packages.AndRestriction(
        packages.PackageRestriction(
            "category", values.StrExactMatch("virtual")),
        packages.PackageRestriction(
            "package_is_real", values.EqualityMatch(False))
        )
    )

--preload-vdb-state doesn't really do what I'd expect it to even when running with a no-replace resolver. That's further than i want to go into the resolver to figure out though, kthxbye.

Note: See TracTickets for help on using tickets.