From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Martin Jansa <martin.jansa@gmail.com>
Cc: openembedded-core <openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH] sstate: Improve handling of machine specific manifests
Date: Mon, 22 Oct 2012 12:42:51 +0100 [thread overview]
Message-ID: <1350906171.2520.82.camel@ted> (raw)
In-Reply-To: <20121022110809.GF3269@jama.jama.net>
On Mon, 2012-10-22 at 13:08 +0200, Martin Jansa wrote:
> On Mon, Oct 22, 2012 at 11:58:28AM +0100, Richard Purdie wrote:
> > On Mon, 2012-10-22 at 12:44 +0200, Martin Jansa wrote:
> > > On Fri, Oct 19, 2012 at 03:48:55PM +0100, Richard Purdie wrote:
> > > > Now do_package isn't machine specific, we're only left with do_populate_sysroot as a
> > > > machine specific task. This change marks only the machine specific manifests as machine
> > > > specific, defaulting to PACKAGE_ARCH for everything else.
> > > >
> > > > This means we do less work where there are multiple machines using the same
> > > > core package architecture and we can start to clean up the sstate duplicate files
> > > > whitelist.
> > > >
> > > > Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> > > > ---
> > > > diff --git a/meta/classes/sstate.bbclass b/meta/classes/sstate.bbclass
> > > > index d2a120b..dee84bf 100644
> > > > --- a/meta/classes/sstate.bbclass
> > > > +++ b/meta/classes/sstate.bbclass
> > > > @@ -17,10 +17,7 @@ SSTATE_EXTRAPATH = ""
> > > > SSTATE_EXTRAPATHWILDCARD = ""
> > > > SSTATE_PATHSPEC = "${SSTATE_DIR}/${SSTATE_EXTRAPATHWILDCARD}*/${SSTATE_PKGSPEC}"
> > > >
> > > > -# In theory we should be using:
> > > > -# SSTATE_DUPWHITELIST = "${DEPLOY_DIR_IMAGE}/ ${DEPLOY_DIR}/licenses/ ${DEPLOY_DIR_IPK}/all/ ${DEPLOY_DIR_RPM}/all ${DEPLOY_DIR_DEB}/all/ ${TMPDIR}/pkgdata/all${TARGET_VENDOR}-${TARGET_OS}"
> > > > -# However until do_package is not machine specific, we'll have to make do with all of deploy/pkgdata.
> > > > -SSTATE_DUPWHITELIST = "${DEPLOY_DIR}/ ${TMPDIR}/pkgdata/"
> > > > +SSTATE_DUPWHITELIST = "${DEPLOY_DIR_IMAGE}/ ${DEPLOY_DIR}/licenses/"
> > >
> > > Looks like warnings are back :/
> > >
> > > WARNING: The recipe attr is trying to install files into a shared area when those files already exist. Those files are:
> > > /OE/jansa-test/shr-core/tmp-eglibc/deploy/ipk/armv7a-vfp-neon/attr-locale-de_2.4.46-r4_armv7a-vfp-neon.ipk
> > > /OE/jansa-test/shr-core/tmp-eglibc/deploy/ipk/armv7a-vfp-neon/attr-dbg_2.4.46-r4_armv7a-vfp-neon.ipk
> > > /OE/jansa-test/shr-core/tmp-eglibc/deploy/ipk/armv7a-vfp-neon/attr-locale-sv_2.4.46-r4_armv7a-vfp-neon.ipk
> > > ...
> > >
> > > and new warnings from pkgdata
> > > WARNING: The recipe bison is trying to install files into a shared area when those files already exist. Those files are:
> > > /OE/jansa-test/shr-core/tmp-eglibc/pkgdata/armv7a-vfp-neon-oe-linux-gnueabi/bison
> > > /OE/jansa-test/shr-core/tmp-eglibc/pkgdata/armv7a-vfp-neon-oe-linux-gnueabi/runtime/bison-locale-nl.packaged
> > > /OE/jansa-test/shr-core/tmp-eglibc/pkgdata/armv7a-vfp-neon-oe-linux-gnueabi/runtime/bison-dbg.packaged
> > > /OE/jansa-test/shr-core/tmp-eglibc/pkgdata/armv7a-vfp-neon-oe-linux-gnueabi/runtime/bison-doc
> > > /OE/jansa-test/shr-core/tmp-eglibc/pkgdata/armv7a-vfp-neon-oe-linux-gnueabi/runtime/bison-locale-th.packaged
> > > ...
> >
> > The question is why as they shouldn't be, these changes were meant to
> > fix this properly. Initially I wondered if this was another
> > manifestation of https://bugzilla.yoctoproject.org/show_bug.cgi?id=3219
> > but I'm not so sure.
>
> Probably not as this happens on builder with 2 machines using the same
> tune and the same CCARGS.
>
> > Can you figure out which two recipes are trying to install these sets of
> > files?
>
> I'll try to compare them with scripts/sstate-diff.sh again to see if
> checksums are the same between those 2 machines, but those warnings are
> shown already when building 1 machine.
>
> > Or perhaps this is a one off transition issue I didn't see here when
> > testing this? Does a build from a clean tmp do this?
>
> Yes I've removed tmp-eglibc before starting this build (kept only
> sstate-cache) and it's building first machine.
If the warnings are showing up even after building one machine, there is
something very strange going on. Did it run the setscene do_package task
for these recipes?
Its as if it installed from sstate and then decided to overwrite the
files. Something isn't making sense though :/. Firstly, the sstate
should have been invalidated due to the package class and variable
changes. Secondly, if it had installed the files, it should be
uninstalled them before installing a second set. So I'm confused as to
what is going on here...
Cheers,
Richard
next prev parent reply other threads:[~2012-10-22 11:56 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-19 14:48 [PATCH] sstate: Improve handling of machine specific manifests Richard Purdie
2012-10-22 10:44 ` Martin Jansa
2012-10-22 10:58 ` Richard Purdie
2012-10-22 11:08 ` Martin Jansa
2012-10-22 11:42 ` Richard Purdie [this message]
2012-10-22 12:02 ` Martin Jansa
2012-10-22 13:17 ` Martin Jansa
2012-10-22 13:56 ` Richard Purdie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1350906171.2520.82.camel@ted \
--to=richard.purdie@linuxfoundation.org \
--cc=martin.jansa@gmail.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.