From: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
To: Richard Purdie <richard.purdie@linuxfoundation.org>,
openembedded-core@lists.openembedded.org
Subject: Re: [PATCH] rootfs: always update the opkg index
Date: Mon, 24 Sep 2018 18:00:28 +0300 [thread overview]
Message-ID: <871s9jj5yr.fsf@ni.com> (raw)
In-Reply-To: <be7a233326b1d6709c57398e1a01ed5a371ddb3b.camel@linuxfoundation.org>
On Mon, 24 Sep 2018, Richard Purdie <richard.purdie@linuxfoundation.org> wrote:
> On Mon, 2018-09-24 at 16:25 +0300, Ioan-Adrian Ratiu wrote:
>> The previous logic assumed that if $BUILD_IMAGES_FROM_FEEDS=1 then a
>> complete set of ipk feeds from which to build the image is already
>> present under $IPK_FEED_URIS at do_rootfs runtime.
>>
>> $IPK_FEED_URIS usually contains "file://${DEPLOY_DIR_IPK}" which
>> renders the above assumption bad because some recipes in the current
>> build can contain code like do_install[nostamp] = "1" which will
>> cause
>> rebuilds bumping $PR and invalidating the index.
>>
>> Even when the index is manually re-created before an image build
>> ("bitbake package-index"), the nostamp will cause failures because
>> the
>> dependency gets rebuilt before do_rootfs in the "bitbake <image>"
>> call.
>>
>> So make the opkg rootfs index logic the same as for rpm/deb, to
>> always
>> update the index in $DEPLOY_DIR_IPK to fix the above nostamp failure.
>>
>> Feeds outside $DEPLOY_DIR_IPK continue to work as usual.
>
> Is this with master or an older branch?
I've extensively tested this with Sumo, on master I could only verify
the build passes and a minimal image boots.
>
> With master, a copy of the feed is constructed under WORKDIR which is
> then indexed since other image generation or package writes could occur
> and the index isn't static. I'm guessing it doesn't do this for
> external feeds and assumes those feeds are static.
My description of the problem mirrors my understanding of the feed
construction process which might be limited especially if it changed on
master post-Sumo, but the answer is yes, external feeds are assumed
static.
>
> I am wondering what happens if you put a remote (http://) url into this
> though? Does that still work or does it break?
It still works, we're using http paths all the time in our distro
(public feed server is at http://download.ni.com/ni-linux-rt/)
>
> I'm also worried about what happens if the file:// path you point at is
> owned by another user and isn't writable.
Thanks for pointing this out. Looks like it enters an infinite loop: the
do_rootfs task is stuck at 3% and a worker process pegs a core to 100%.
Without this change, do_rootfs gets stuck at 12%, worker pegging a core
if the feed is owned by another user with no write permissions.
This was unexpected :) I'll roll up my sleeves and start digging.
Do you have any pointers about what might be happening?
>
> Cheers,
>
> Richard
next prev parent reply other threads:[~2018-09-24 14:58 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-24 13:25 [PATCH] rootfs: always update the opkg index Ioan-Adrian Ratiu
2018-09-24 14:05 ` Richard Purdie
2018-09-24 15:00 ` Ioan-Adrian Ratiu [this message]
2018-09-24 16:41 ` richard.purdie
2018-09-25 9:48 ` Ioan-Adrian Ratiu
2018-09-25 10:00 ` Ioan-Adrian Ratiu
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=871s9jj5yr.fsf@ni.com \
--to=adrian.ratiu@ni.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