[OE-core] [PATCH] Allow for simultaneous do_rootfs tasks with rpm
Stephano Cetola
stephano.cetola at linux.intel.com
Wed Jul 27 03:43:30 UTC 2016
On 07/20, Richard Purdie wrote:
> On Thu, 2016-07-14 at 14:20 -0700, Stephano Cetola wrote:
> > Give each rootfs its own RPM channel to use. This puts the RPM
> > metadata
> > in a private subdirectory of $WORKDIR, rather than living in
> > DEPLOY_DIR
> > where other tasks may race with it.
> >
> > This allows us to reduce the time that the rpm.lock is held to only
> > the
> > time needed to hardlink the RPMs, allowing the majority of the rootfs
> > operation to run in parallel.
> >
> > [ YOCTO #9255 ]
> >
> > Signed-Off-By: Steven Walter <stevenrwalter at gmail.com>
> > Signed-off-by: Stephano Cetola <stephano.cetola at linux.intel.com>
> > ---
> > meta/classes/rootfs_rpm.bbclass | 5 -----
> > meta/lib/oe/package_manager.py | 17 ++++++++++++++---
> > 2 files changed, 14 insertions(+), 8 deletions(-)
>
> Sadly, much as I'd love to merge this, testing shows we have some
> issues.
>
> Firstly, it means we no longer generate indexes in tmp/deploy/rpm and
> this breaks -c testimage since some of the tests connect and look for
> packages there, e.g. https://autobuilder.yoctoproject.org/main/builders
> /nightly-qa-logrotate/builds/851 but many others would have also
> failed.
>
After digging into this I think that I can change the tests so that they
point at the correct location:
e.g.
tmp/work/qemux86-oe-linux/core-image-sato/1.0-r0/rpms/qemux86/repodata
based on the target triplet, image, PV (I'm guessing here), and arch
variables. I realized when digging into this that using "rpms" in the
path (which was a result of this patch) is wrong. It should be "rpm".
Let me know if this sounds right or if I'm dreaming.
> I've also started wondering what happens if we have some scenario where
> we have:
>
> bitbake core-image-sato epiphany
> <rootfs for core-image-sato starts>
> <rebuild for epiphany or one of its dependencies happens>
> <old package from epiphany or one of its dependencies is removed from
> tmp/deploy/rpm>
> <core-image-sato index references this now removed package>
>
> I'd hope the system should handle this since it should only be
> referencing things that are direct task dependencies but with
> rpm/smart, who knows :/. We should at least see how this fails (if it
> fails).
>
When I build these two this morning I got a bunch of failures on
webkit's configure stage. I'll have to look into those.
> It could get particularly ugly if we use globbing for the rootfs
> construction (e.g. *-locale) and the list of packages changed depending
> on what else was built. I'd guess we'd already have this problem but
> this patch could magnify any problem.
>
> We are going to have to at least solve the testimage package index
> problem before we can merge it.
>
> Cheers,
>
> Richard
>
>
More information about the Openembedded-core
mailing list