From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH] sstate.bbclass: preserve time when unstaging files
Date: Mon, 29 Oct 2012 18:19:07 +0000 [thread overview]
Message-ID: <1351534747.2828.34.camel@ted> (raw)
In-Reply-To: <lyr4ohgnw0.fsf@ensc-virt.intern.sigma-chemnitz.de>
On Mon, 2012-10-29 at 18:59 +0100, Enrico Scholz wrote:
> Richard Purdie <richard.purdie@linuxfoundation.org> writes:
>
> >> > where the option was added deliberately to deal with time mismatch
> >> > between autobuilders which was causing real world bugs.
> >>
> >> But the real bug is the time mismatch in the autobuilders, isn't it?
> >> And this can/should be solved by synchronizing time by ntp on them
> >> instead of applying dirty hacks like resetting file dates.
> >
> > I have asked that ntp be installed/fixed on the autobuilders to sort the
> > problem out but it seems that even with ntp running, mismatches can
> > happen (e.g. misconfigured timezones).
>
> Really? The only timezone related problems might arise when a package
> makes 'touch -d <date>' during build. But I can not remember that I
> have ever seen such a package and this problem should be easy to
> localize.
>
> Else, timezone configuration is completely uninteresting for comparing
> timestamps or for setting time from ntp.
>
> > Worse, when this does happen the failures are extremely unpredictable
> > and hard to debug. It causes things to repeatedly recompile for example,
> > even during do_install.
>
> How comes do_install() into the game? 'populate-lic' are the only
> sstate files created before do_install() and I can not imagine how they
> affect the other build phases; do_compile() results are not sstated
> (and with the 'tar -m' thing, timestamps get havoc completely causing
> unpredictable rebuilds).
>
> When do_install() is executed, all the following sstate files
> (populate_sysroot, package) are invalidated and must be recreated. So
> your problem with do_install() sounds more like an incomplete/racy
> cleanup of old files.
Set the date stamp of some headers in the target sysroot of some key
system components (say glib) to a date about a day in the future, then
clean and rebuild some software that uses glib.
You will find that every time the recipe runs make, *everything* will
recompile. This will happen during do_install as well as do_compile and
if you recipe calls make for any other reason, it will recompile again.
Normally the builds actually tolerate this quite well, until you get
something like qt4 where the do_install environment isn't setup to
support compiling and then things explode in interesting ways.
Cheers,
Richard
next prev parent reply other threads:[~2012-10-29 18:32 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-29 15:11 [PATCH] sstate.bbclass: preserve time when unstaging files Enrico Scholz
2012-10-29 16:11 ` Richard Purdie
2012-10-29 16:24 ` Enrico Scholz
2012-10-29 17:22 ` Richard Purdie
2012-10-29 17:59 ` Enrico Scholz
2012-10-29 18:19 ` Richard Purdie [this message]
2012-10-29 19:00 ` Enrico Scholz
2012-10-29 21:20 ` Richard Purdie
2012-10-29 21:41 ` Enrico Scholz
2012-10-29 21:55 ` 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=1351534747.2828.34.camel@ted \
--to=richard.purdie@linuxfoundation.org \
--cc=enrico.scholz@sigma-chemnitz.de \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox