Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Martin Jansa <martin.jansa@gmail.com>
To: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: openembedded-core <openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH] sstate: Improve handling of machine specific manifests
Date: Mon, 22 Oct 2012 14:02:34 +0200	[thread overview]
Message-ID: <20121022120234.GG3269@jama.jama.net> (raw)
In-Reply-To: <1350906171.2520.82.camel@ted>

[-- Attachment #1: Type: text/plain, Size: 7146 bytes --]

On Mon, Oct 22, 2012 at 12:42:51PM +0100, Richard Purdie wrote:
> 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?

No, only for populate_lic and populate_sysroot:

NOTE: recipe attr-2.4.46-r4: task do_populate_sysroot_setscene: Started
NOTE: recipe attr-2.4.46-r4: task do_populate_sysroot_setscene: Succeeded
NOTE: recipe attr-2.4.46-r4: task do_populate_lic_setscene: Started
NOTE: recipe attr-2.4.46-r4: task do_populate_lic_setscene: Succeeded
NOTE: recipe attr-2.4.46-r4: task do_fetch: Started
NOTE: recipe attr-2.4.46-r4: task do_fetch: Succeeded
NOTE: recipe attr-2.4.46-r4: task do_unpack: Started
NOTE: recipe attr-2.4.46-r4: task do_unpack: Succeeded
NOTE: recipe attr-2.4.46-r4: task do_patch: Started
NOTE: recipe attr-2.4.46-r4: task do_patch: Succeeded
NOTE: recipe attr-2.4.46-r4: task do_configure: Started
NOTE: recipe attr-2.4.46-r4: task do_configure: Succeeded
NOTE: recipe attr-2.4.46-r4: task do_compile: Started
NOTE: recipe attr-2.4.46-r4: task do_compile: Succeeded
NOTE: recipe attr-2.4.46-r4: task do_install: Started
NOTE: recipe attr-2.4.46-r4: task do_install: Succeeded
NOTE: recipe attr-2.4.46-r4: task do_populate_sysroot: Started
NOTE: recipe attr-2.4.46-r4: task do_populate_sysroot: Succeeded
NOTE: recipe attr-2.4.46-r4: task do_package: Started
NOTE: recipe attr-2.4.46-r4: task do_package: Succeeded
NOTE: recipe attr-2.4.46-r4: task do_package_write_ipk: Started
NOTE: recipe attr-2.4.46-r4: task do_package_write_ipk: Succeeded
NOTE: recipe attr-2.4.46-r4: task do_rm_work: Started
NOTE: recipe attr-2.4.46-r4: task do_rm_work: Succeeded

But I see this behavior when setscene tasks are executed and 
later it rebuilds it again quite often (assuming that some error 
in setscene task was hidden - e.g. that fetcher error from
https://bugzilla.yoctoproject.org/show_bug.cgi?id=3250
wasn't shown until lately, but maybe was there all the time)

> 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...

It seems to reinstall a lot of files in sysroot too (which weren't shown before).

e.g. all files from gst-plugins-good now show warning
WARNING: The recipe gst-plugins-good is trying to install files into a shared area when those files already exist. Those files are:
   /OE/jansa-test/shr-core/tmp-eglibc/sysroots/tuna/usr/share/gstreamer-0.10/presets/GstIirEqualizer10Bands.prs
   /OE/jansa-test/shr-core/tmp-eglibc/sysroots/tuna/usr/share/gstreamer-0.10/presets/GstIirEqualizer3Bands.prs
...

I'll try to wipe tmp-eglibc again after this build finishes to see if it was
one off or if it will repeat again.

Cheers,

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa@gmail.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

  reply	other threads:[~2012-10-22 12:15 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
2012-10-22 12:02         ` Martin Jansa [this message]
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=20121022120234.GG3269@jama.jama.net \
    --to=martin.jansa@gmail.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=richard.purdie@linuxfoundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox