* What's this
@ 2016-06-05 16:44 Gary Thomas
2016-06-07 16:02 ` Burton, Ross
0 siblings, 1 reply; 13+ messages in thread
From: Gary Thomas @ 2016-06-05 16:44 UTC (permalink / raw)
To: yocto@yoctoproject.org
I just updated my Poky repo and did a rebuild and saw this "error"
(although it carried on with the build):
ERROR: base-files-3.0.14-r89 do_install: Taskhash mismatch ceb25febc6f11a5cc2b3c4a4b0b2c136 verses
44f498452dfce5875451bca66b230e31 for /local/poky-cutting-edge/meta/recipes-core/base-files/base-files_3.0.14.bb.do_install
ERROR: Taskhash mismatch ceb25febc6f11a5cc2b3c4a4b0b2c136 verses 44f498452dfce5875451bca66b230e31 for
/local/poky-cutting-edge/meta/recipes-core/base-files/base-files_3.0.14.bb.do_install
What does this mean? Should I be worried?
meta = "master:04319c0340010c4e0f78cab252cfcb0ebe23ee84"
--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: What's this
2016-06-05 16:44 What's this Gary Thomas
@ 2016-06-07 16:02 ` Burton, Ross
2016-06-07 16:20 ` Burton, Ross
2016-06-07 16:24 ` Gary Thomas
0 siblings, 2 replies; 13+ messages in thread
From: Burton, Ross @ 2016-06-07 16:02 UTC (permalink / raw)
To: Gary Thomas; +Cc: yocto@yoctoproject.org
[-- Attachment #1: Type: text/plain, Size: 987 bytes --]
On 5 June 2016 at 17:44, Gary Thomas <gary@mlbassoc.com> wrote:
> I just updated my Poky repo and did a rebuild and saw this "error"
> (although it carried on with the build):
> ERROR: base-files-3.0.14-r89 do_install: Taskhash mismatch
> ceb25febc6f11a5cc2b3c4a4b0b2c136 verses 44f498452dfce5875451bca66b230e31
> for
> /local/poky-cutting-edge/meta/recipes-core/base-files/base-files_3.0.14.bb.do_install
> ERROR: Taskhash mismatch ceb25febc6f11a5cc2b3c4a4b0b2c136 verses
> 44f498452dfce5875451bca66b230e31 for
> /local/poky-cutting-edge/meta/recipes-core/base-files/base-files_3.0.14.bb.do_install
>
> What does this mean? Should I be worried?
>
It means the hash calculated my the bitbake master was different to the
hash calculated when the worker started up. This usually means that you're
using something like ${TIME} in the recipe but not marking it appropriatly
so the cache ignores it. Do you have a base-files bbappend that writes a
timestamp?
Ross
[-- Attachment #2: Type: text/html, Size: 1396 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: What's this
2016-06-07 16:02 ` Burton, Ross
@ 2016-06-07 16:20 ` Burton, Ross
2016-06-07 16:58 ` Gary Thomas
2016-06-07 21:24 ` Paul Eggleton
2016-06-07 16:24 ` Gary Thomas
1 sibling, 2 replies; 13+ messages in thread
From: Burton, Ross @ 2016-06-07 16:20 UTC (permalink / raw)
To: Gary Thomas; +Cc: yocto@yoctoproject.org
[-- Attachment #1: Type: text/plain, Size: 704 bytes --]
On 7 June 2016 at 17:02, Burton, Ross <ross.burton@intel.com> wrote:
> It means the hash calculated my the bitbake master was different to the
> hash calculated when the worker started up. This usually means that you're
> using something like ${TIME} in the recipe but not marking it appropriatly
> so the cache ignores it. Do you have a base-files bbappend that writes a
> timestamp?
>
The always wise Joshua reminds me that if your DISTRO_VERSION contains
${DATETIME} then this happens. If you're doing this then you'll want to
set [vardepsexclude] on DISTRO_VERSION to stop the DATETIME from getting
into the cache (or not put the current date/time into the distro version).
Ross
[-- Attachment #2: Type: text/html, Size: 1064 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: What's this
2016-06-07 16:02 ` Burton, Ross
2016-06-07 16:20 ` Burton, Ross
@ 2016-06-07 16:24 ` Gary Thomas
1 sibling, 0 replies; 13+ messages in thread
From: Gary Thomas @ 2016-06-07 16:24 UTC (permalink / raw)
To: yocto
On 2016-06-07 18:02, Burton, Ross wrote:
>
> On 5 June 2016 at 17:44, Gary Thomas <gary@mlbassoc.com <mailto:gary@mlbassoc.com>> wrote:
>
> I just updated my Poky repo and did a rebuild and saw this "error"
> (although it carried on with the build):
> ERROR: base-files-3.0.14-r89 do_install: Taskhash mismatch ceb25febc6f11a5cc2b3c4a4b0b2c136 verses
> 44f498452dfce5875451bca66b230e31 for
> /local/poky-cutting-edge/meta/recipes-core/base-files/base-files_3.0.14.bb.do_install
> ERROR: Taskhash mismatch ceb25febc6f11a5cc2b3c4a4b0b2c136 verses 44f498452dfce5875451bca66b230e31 for
> /local/poky-cutting-edge/meta/recipes-core/base-files/base-files_3.0.14.bb.do_install
>
> What does this mean? Should I be worried?
>
>
> It means the hash calculated my the bitbake master was different to the hash calculated when the worker started up.
> This usually means that you're using something like ${TIME} in the recipe but not marking it appropriatly so the cache
> ignores it. Do you have a base-files bbappend that writes a timestamp?
Sorry, nothing like that in my layers. Note: this only happened once,
immediately after a poky pull and the builds have been happy since.
Whatever it was only happened that one time (not that that should be
any less concerning...)
--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: What's this
2016-06-07 16:20 ` Burton, Ross
@ 2016-06-07 16:58 ` Gary Thomas
2016-06-07 21:29 ` Joshua G Lock
2016-06-07 21:24 ` Paul Eggleton
1 sibling, 1 reply; 13+ messages in thread
From: Gary Thomas @ 2016-06-07 16:58 UTC (permalink / raw)
To: Burton, Ross; +Cc: yocto@yoctoproject.org
On 2016-06-07 18:20, Burton, Ross wrote:
>
> On 7 June 2016 at 17:02, Burton, Ross <ross.burton@intel.com <mailto:ross.burton@intel.com>> wrote:
>
> It means the hash calculated my the bitbake master was different to the hash calculated when the worker started up.
> This usually means that you're using something like ${TIME} in the recipe but not marking it appropriatly so the
> cache ignores it. Do you have a base-files bbappend that writes a timestamp?
>
>
> The always wise Joshua reminds me that if your DISTRO_VERSION contains ${DATETIME} then this happens. If you're doing
> this then you'll want to set [vardepsexclude] on DISTRO_VERSION to stop the DATETIME from getting into the cache (or not
> put the current date/time into the distro version).
>
Ah, that's probably it. Exactly how do I set that exclusion?
--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: What's this
2016-06-07 16:20 ` Burton, Ross
2016-06-07 16:58 ` Gary Thomas
@ 2016-06-07 21:24 ` Paul Eggleton
2016-06-07 22:20 ` Richard Purdie
1 sibling, 1 reply; 13+ messages in thread
From: Paul Eggleton @ 2016-06-07 21:24 UTC (permalink / raw)
To: yocto; +Cc: Gary Thomas
On Tue, 07 Jun 2016 17:20:12 Burton, Ross wrote:
> On 7 June 2016 at 17:02, Burton, Ross <ross.burton@intel.com> wrote:
> > It means the hash calculated my the bitbake master was different to the
> > hash calculated when the worker started up. This usually means that
> > you're
> > using something like ${TIME} in the recipe but not marking it appropriatly
> > so the cache ignores it. Do you have a base-files bbappend that writes a
> > timestamp?
>
> The always wise Joshua reminds me that if your DISTRO_VERSION contains
> ${DATETIME} then this happens. If you're doing this then you'll want to
> set [vardepsexclude] on DISTRO_VERSION to stop the DATETIME from getting
> into the cache (or not put the current date/time into the distro version).
I think we need to handle this situation better - if it's really worth
producing an error about then it's worth producing an error message that
people can actually understand, particularly as it's recently added
validation.
Cheers,
Paul
--
Paul Eggleton
Intel Open Source Technology Centre
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: What's this
2016-06-07 16:58 ` Gary Thomas
@ 2016-06-07 21:29 ` Joshua G Lock
0 siblings, 0 replies; 13+ messages in thread
From: Joshua G Lock @ 2016-06-07 21:29 UTC (permalink / raw)
To: Gary Thomas, Burton, Ross; +Cc: yocto@yoctoproject.org
On Tue, 2016-06-07 at 18:58 +0200, Gary Thomas wrote:
> On 2016-06-07 18:20, Burton, Ross wrote:
> >
> > On 7 June 2016 at 17:02, Burton, Ross <ross.burton@intel.com
> > <mailto:ross.burton@intel.com>> wrote:
> >
> > It means the hash calculated my the bitbake master was
> > different to the hash calculated when the worker started up.
> > This usually means that you're using something like ${TIME} in
> > the recipe but not marking it appropriatly so the
> > cache ignores it. Do you have a base-files bbappend that
> > writes a timestamp?
> >
> >
> > The always wise Joshua reminds me that if your DISTRO_VERSION
> > contains ${DATETIME} then this happens. If you're doing
> > this then you'll want to set [vardepsexclude] on DISTRO_VERSION to
> > stop the DATETIME from getting into the cache (or not
> > put the current date/time into the distro version).
> >
>
> Ah, that's probably it. Exactly how do I set that exclusion?
Assuming DISTRO_VERSION includes DATETIME
DISTRO_VERSION[vardepsexclude] = "DATETIME"
see for example:
http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta-poky/conf/dist
ro/poky.conf#n14
Regards,
Joshua
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: What's this
2016-06-07 21:24 ` Paul Eggleton
@ 2016-06-07 22:20 ` Richard Purdie
2016-06-08 8:59 ` Paul Eggleton
2016-06-08 9:08 ` Mike Looijmans
0 siblings, 2 replies; 13+ messages in thread
From: Richard Purdie @ 2016-06-07 22:20 UTC (permalink / raw)
To: Paul Eggleton, yocto; +Cc: Gary Thomas
On Wed, 2016-06-08 at 09:24 +1200, Paul Eggleton wrote:
> On Tue, 07 Jun 2016 17:20:12 Burton, Ross wrote:
> > On 7 June 2016 at 17:02, Burton, Ross <ross.burton@intel.com>
> > wrote:
> > > It means the hash calculated my the bitbake master was different
> > > to the
> > > hash calculated when the worker started up. This usually means
> > > that
> > > you're
> > > using something like ${TIME} in the recipe but not marking it
> > > appropriatly
> > > so the cache ignores it. Do you have a base-files bbappend that
> > > writes a
> > > timestamp?
> >
> > The always wise Joshua reminds me that if your DISTRO_VERSION
> > contains
> > ${DATETIME} then this happens. If you're doing this then you'll
> > want to
> > set [vardepsexclude] on DISTRO_VERSION to stop the DATETIME from
> > getting
> > into the cache (or not put the current date/time into the distro
> > version).
>
> I think we need to handle this situation better - if it's really
> worth
> producing an error about then it's worth producing an error message
> that
> people can actually understand, particularly as it's recently added
> validation.
It was silently running into problems due to this all along but not
reporting it. Its now reporting it which is better than silently things
behaving strangely.
Its very hard for bitbake to know why the hashes differ, it only knows
the values afterwards and hence that they've changed, the information
about how that hash was constructed is not present in any of bitbake's
caches. That implies to have better messages we need to write out more
data.
I did add a patch to make bitbake write out data to allow
reconstruction of basehash (which is part of taskhash). Sadly the
parsing performance was diabolical (10 times slower). I think that
could perhaps be improved if the files don't require an atomic move
during creation but I haven't had time to look further at it.
So whilst I do agree, what is the price people are willing to pay to
have those better messages?
Cheers,
Richard
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: What's this
2016-06-07 22:20 ` Richard Purdie
@ 2016-06-08 8:59 ` Paul Eggleton
2016-06-08 11:30 ` Richard Purdie
2016-06-08 9:08 ` Mike Looijmans
1 sibling, 1 reply; 13+ messages in thread
From: Paul Eggleton @ 2016-06-08 8:59 UTC (permalink / raw)
To: Richard Purdie; +Cc: yocto, Gary Thomas
On Tue, 07 Jun 2016 23:20:26 Richard Purdie wrote:
> On Wed, 2016-06-08 at 09:24 +1200, Paul Eggleton wrote:
> > On Tue, 07 Jun 2016 17:20:12 Burton, Ross wrote:
> > > On 7 June 2016 at 17:02, Burton, Ross <ross.burton@intel.com>
> > > wrote:
> > > > It means the hash calculated my the bitbake master was different
> > > > to the hash calculated when the worker started up. This usually means
> > > > that you're using something like ${TIME} in the recipe but not marking
> > > > it appropriatly so the cache ignores it. Do you have a base-files
> > > > bbappend that writes a timestamp?
> > >
> > > The always wise Joshua reminds me that if your DISTRO_VERSION
> > > contains ${DATETIME} then this happens. If you're doing this then
> > > you'll want to set [vardepsexclude] on DISTRO_VERSION to stop the
> > > DATETIME from getting into the cache (or not put the current date/time
> > > into the distro version).
> >
> > I think we need to handle this situation better - if it's really
> > worth producing an error about then it's worth producing an error message
> > that people can actually understand, particularly as it's recently added
> > validation.
>
> It was silently running into problems due to this all along but not
> reporting it. Its now reporting it which is better than silently things
> behaving strangely.
What are the actual consequences in a situation like this where we have
something like ${DATETIME} in another variable referenced by the task?
I haven't looked at all of the code involved (and that's probably the root of
my problem) but I don't quite understand how this is coming about. DATE and
TIME are supposed to be determined at the start of the build and explicitly
passed to the worker, so they don't change during the build. What am I
missing?
> Its very hard for bitbake to know why the hashes differ, it only knows
> the values afterwards and hence that they've changed, the information
> about how that hash was constructed is not present in any of bitbake's
> caches. That implies to have better messages we need to write out more
> data.
>
> I did add a patch to make bitbake write out data to allow
> reconstruction of basehash (which is part of taskhash). Sadly the
> parsing performance was diabolical (10 times slower). I think that
> could perhaps be improved if the files don't require an atomic move
> during creation but I haven't had time to look further at it.
>
> So whilst I do agree, what is the price people are willing to pay to
> have those better messages?
Clearly a 10x slowdown is unacceptable, hopefully we can find another way of
dealing with this. I guess if we're able to do nothing else a brief
explanation of what to look for (i.e. variables that might change with time)
in the error message would be helpful, but I hope we can do better than that.
Cheers,
Paul
--
Paul Eggleton
Intel Open Source Technology Centre
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: What's this
2016-06-07 22:20 ` Richard Purdie
2016-06-08 8:59 ` Paul Eggleton
@ 2016-06-08 9:08 ` Mike Looijmans
2016-06-08 9:18 ` Gary Thomas
1 sibling, 1 reply; 13+ messages in thread
From: Mike Looijmans @ 2016-06-08 9:08 UTC (permalink / raw)
To: Richard Purdie, Paul Eggleton, yocto; +Cc: Gary Thomas
On 08-06-16 00:20, Richard Purdie wrote:
> On Wed, 2016-06-08 at 09:24 +1200, Paul Eggleton wrote:
>> On Tue, 07 Jun 2016 17:20:12 Burton, Ross wrote:
>>> On 7 June 2016 at 17:02, Burton, Ross <ross.burton@intel.com>
>>> wrote:
>>>> It means the hash calculated my the bitbake master was different
>>>> to the
>>>> hash calculated when the worker started up. This usually means
>>>> that
>>>> you're
>>>> using something like ${TIME} in the recipe but not marking it
>>>> appropriatly
>>>> so the cache ignores it. Do you have a base-files bbappend that
>>>> writes a
>>>> timestamp?
>>>
>>> The always wise Joshua reminds me that if your DISTRO_VERSION
>>> contains
>>> ${DATETIME} then this happens. If you're doing this then you'll
>>> want to
>>> set [vardepsexclude] on DISTRO_VERSION to stop the DATETIME from
>>> getting
>>> into the cache (or not put the current date/time into the distro
>>> version).
>>
>> I think we need to handle this situation better - if it's really
>> worth
>> producing an error about then it's worth producing an error message
>> that
>> people can actually understand, particularly as it's recently added
>> validation.
>
> It was silently running into problems due to this all along but not
> reporting it. Its now reporting it which is better than silently things
> behaving strangely.
>
> Its very hard for bitbake to know why the hashes differ, it only knows
> the values afterwards and hence that they've changed, the information
> about how that hash was constructed is not present in any of bitbake's
> caches. That implies to have better messages we need to write out more
> data.
>
> I did add a patch to make bitbake write out data to allow
> reconstruction of basehash (which is part of taskhash). Sadly the
> parsing performance was diabolical (10 times slower). I think that
> could perhaps be improved if the files don't require an atomic move
> during creation but I haven't had time to look further at it.
>
> So whilst I do agree, what is the price people are willing to pay to
> have those better messages?
I have a build machine that every so often runs into "basehash mismatch"
problems (but never when you want it to, such as now), so getting some
information on what might cause it would be "priceless". I'd happily let the
machine run for 10 days straight if at the end I get a message that I can work
with.
Which implies that any performance hit is acceptable, if there's a switch to
enable and disable that extra diagnostic. Oh dear, just what we need, yet
another switch...
M.
Kind regards,
Mike Looijmans
System Expert
TOPIC Embedded Products
Eindhovenseweg 32-C, NL-5683 KH Best
Postbus 440, NL-5680 AK Best
Telefoon: +31 (0) 499 33 69 79
E-mail: mike.looijmans@topicproducts.com
Website: www.topicproducts.com
Please consider the environment before printing this e-mail
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: What's this
2016-06-08 9:08 ` Mike Looijmans
@ 2016-06-08 9:18 ` Gary Thomas
2016-06-08 11:59 ` Julien Gueytat
0 siblings, 1 reply; 13+ messages in thread
From: Gary Thomas @ 2016-06-08 9:18 UTC (permalink / raw)
To: Mike Looijmans, Richard Purdie, Paul Eggleton, yocto
On 2016-06-08 11:08, Mike Looijmans wrote:
> On 08-06-16 00:20, Richard Purdie wrote:
>> On Wed, 2016-06-08 at 09:24 +1200, Paul Eggleton wrote:
>>> On Tue, 07 Jun 2016 17:20:12 Burton, Ross wrote:
>>>> On 7 June 2016 at 17:02, Burton, Ross <ross.burton@intel.com>
>>>> wrote:
>>>>> It means the hash calculated my the bitbake master was different
>>>>> to the
>>>>> hash calculated when the worker started up. This usually means
>>>>> that
>>>>> you're
>>>>> using something like ${TIME} in the recipe but not marking it
>>>>> appropriatly
>>>>> so the cache ignores it. Do you have a base-files bbappend that
>>>>> writes a
>>>>> timestamp?
>>>>
>>>> The always wise Joshua reminds me that if your DISTRO_VERSION
>>>> contains
>>>> ${DATETIME} then this happens. If you're doing this then you'll
>>>> want to
>>>> set [vardepsexclude] on DISTRO_VERSION to stop the DATETIME from
>>>> getting
>>>> into the cache (or not put the current date/time into the distro
>>>> version).
>>>
>>> I think we need to handle this situation better - if it's really
>>> worth
>>> producing an error about then it's worth producing an error message
>>> that
>>> people can actually understand, particularly as it's recently added
>>> validation.
>>
>> It was silently running into problems due to this all along but not
>> reporting it. Its now reporting it which is better than silently things
>> behaving strangely.
>>
>> Its very hard for bitbake to know why the hashes differ, it only knows
>> the values afterwards and hence that they've changed, the information
>> about how that hash was constructed is not present in any of bitbake's
>> caches. That implies to have better messages we need to write out more
>> data.
>>
>> I did add a patch to make bitbake write out data to allow
>> reconstruction of basehash (which is part of taskhash). Sadly the
>> parsing performance was diabolical (10 times slower). I think that
>> could perhaps be improved if the files don't require an atomic move
>> during creation but I haven't had time to look further at it.
>>
>> So whilst I do agree, what is the price people are willing to pay to
>> have those better messages?
>
> I have a build machine that every so often runs into "basehash mismatch" problems (but never when you want it to, such
> as now), so getting some information on what might cause it would be "priceless". I'd happily let the machine run for 10
> days straight if at the end I get a message that I can work with.
>
> Which implies that any performance hit is acceptable, if there's a switch to enable and disable that extra diagnostic.
> Oh dear, just what we need, yet another switch...
>
I wonder if it could be something as simple as an NTP time update
which happens periodically on my build machine? Since I've only
ever seen this message _once_ after literally thousands of builds,
it is a rare bird indeed!
--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: What's this
2016-06-08 8:59 ` Paul Eggleton
@ 2016-06-08 11:30 ` Richard Purdie
0 siblings, 0 replies; 13+ messages in thread
From: Richard Purdie @ 2016-06-08 11:30 UTC (permalink / raw)
To: Paul Eggleton; +Cc: yocto, Gary Thomas
On Wed, 2016-06-08 at 20:59 +1200, Paul Eggleton wrote:
> On Tue, 07 Jun 2016 23:20:26 Richard Purdie wrote:
> > On Wed, 2016-06-08 at 09:24 +1200, Paul Eggleton wrote:
> > > On Tue, 07 Jun 2016 17:20:12 Burton, Ross wrote:
> > > > On 7 June 2016 at 17:02, Burton, Ross <ross.burton@intel.com>
> > > > wrote:
> > > > > It means the hash calculated my the bitbake master was
> > > > > different
> > > > > to the hash calculated when the worker started up. This
> > > > > usually means
> > > > > that you're using something like ${TIME} in the recipe but
> > > > > not marking
> > > > > it appropriatly so the cache ignores it. Do you have a base
> > > > > -files
> > > > > bbappend that writes a timestamp?
> > > >
> > > > The always wise Joshua reminds me that if your DISTRO_VERSION
> > > > contains ${DATETIME} then this happens. If you're doing this
> > > > then
> > > > you'll want to set [vardepsexclude] on DISTRO_VERSION to stop
> > > > the
> > > > DATETIME from getting into the cache (or not put the current
> > > > date/time
> > > > into the distro version).
> > >
> > > I think we need to handle this situation better - if it's really
> > > worth producing an error about then it's worth producing an error
> > > message
> > > that people can actually understand, particularly as it's
> > > recently added
> > > validation.
> >
> > It was silently running into problems due to this all along but not
> > reporting it. Its now reporting it which is better than silently
> > things
> > behaving strangely.
>
> What are the actual consequences in a situation like this where we
> have something like ${DATETIME} in another variable referenced by the
> task?
A mismatch means the cached internal values bitbake is using on the
cooker/server side don't match what the worker is actually doing. Its
hard to say for sure exactly what impact that would have.
If for example its in a do_build task, it means that some invalid data
may be written out to the do_build sigdata file and confuse later build
analysis based on those files. You can usually tell such a file by the
fact its named with one hash name but when you compute the value from
the entries in the file, you get a different hash.
If its a more important task like do_install, it could mean something
doesn't rerun when it should, or vice versa and the effect of a corrupt
sidinfo/sigdata is more significant.
With the changes to error in these cases, we get to know about cases of
mismatch and we went and fixed the majority of causes of these. I
believe those mismatches were in part at fault for things like diffsigs
not working as expected in some cases.
> I haven't looked at all of the code involved (and that's probably the
> root of my problem) but I don't quite understand how this is coming
> about. DATE and TIME are supposed to be determined at the start of
> the build and explicitly passed to the worker, so they don't change
> during the build. What am I missing?
Bitbake computes the hashes at parse time and caches them. At run time,
it then builds a new data store in the worker. These errors come about
when the values in the cache from parsing don't match the runtime
execution environment.
> > Its very hard for bitbake to know why the hashes differ, it only
> > knows
> > the values afterwards and hence that they've changed, the
> > information
> > about how that hash was constructed is not present in any of
> > bitbake's
> > caches. That implies to have better messages we need to write out
> > more
> > data.
> >
> > I did add a patch to make bitbake write out data to allow
> > reconstruction of basehash (which is part of taskhash). Sadly the
> > parsing performance was diabolical (10 times slower). I think that
> > could perhaps be improved if the files don't require an atomic move
> > during creation but I haven't had time to look further at it.
> >
> > So whilst I do agree, what is the price people are willing to pay
> > to
> > have those better messages?
>
> Clearly a 10x slowdown is unacceptable, hopefully we can find another
> way of
> dealing with this. I guess if we're able to do nothing else a brief
> explanation of what to look for (i.e. variables that might change
> with time)
> in the error message would be helpful, but I hope we can do better
> than that.
So do I, its a time problem on my part to look into it. As mentioned
above, I believe this problem was meaning diffsigs was unreliable and
it was having other unknown impact on builds rebuilding when they
shouldn't or vice versa. I believe those are important to fix. We need
better sstate hash debugging/telemetry but exactly how to do this
without performance impact remains to be seen. I'm continue to think on
it (along with too many other issues) but am open to ideas.
Cheers,
Richard
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: What's this
2016-06-08 9:18 ` Gary Thomas
@ 2016-06-08 11:59 ` Julien Gueytat
0 siblings, 0 replies; 13+ messages in thread
From: Julien Gueytat @ 2016-06-08 11:59 UTC (permalink / raw)
To: yocto
I got that taskhash mismatch too and much more often than once per
million. ;) I'm quite happy that you're discussing it here as I did not
know what it was.
Re-running the task a second time in a row makes the warning disappearing.
Regards,
Le 08/06/2016 11:18, Gary Thomas a écrit :
> On 2016-06-08 11:08, Mike Looijmans wrote:
>> On 08-06-16 00:20, Richard Purdie wrote:
>>> On Wed, 2016-06-08 at 09:24 +1200, Paul Eggleton wrote:
>>>> On Tue, 07 Jun 2016 17:20:12 Burton, Ross wrote:
>>>>> On 7 June 2016 at 17:02, Burton, Ross <ross.burton@intel.com>
>>>>> wrote:
>>>>>> It means the hash calculated my the bitbake master was different
>>>>>> to the
>>>>>> hash calculated when the worker started up. This usually means
>>>>>> that
>>>>>> you're
>>>>>> using something like ${TIME} in the recipe but not marking it
>>>>>> appropriatly
>>>>>> so the cache ignores it. Do you have a base-files bbappend that
>>>>>> writes a
>>>>>> timestamp?
>>>>>
>>>>> The always wise Joshua reminds me that if your DISTRO_VERSION
>>>>> contains
>>>>> ${DATETIME} then this happens. If you're doing this then you'll
>>>>> want to
>>>>> set [vardepsexclude] on DISTRO_VERSION to stop the DATETIME from
>>>>> getting
>>>>> into the cache (or not put the current date/time into the distro
>>>>> version).
>>>>
>>>> I think we need to handle this situation better - if it's really
>>>> worth
>>>> producing an error about then it's worth producing an error message
>>>> that
>>>> people can actually understand, particularly as it's recently added
>>>> validation.
>>>
>>> It was silently running into problems due to this all along but not
>>> reporting it. Its now reporting it which is better than silently things
>>> behaving strangely.
>>>
>>> Its very hard for bitbake to know why the hashes differ, it only knows
>>> the values afterwards and hence that they've changed, the information
>>> about how that hash was constructed is not present in any of bitbake's
>>> caches. That implies to have better messages we need to write out more
>>> data.
>>>
>>> I did add a patch to make bitbake write out data to allow
>>> reconstruction of basehash (which is part of taskhash). Sadly the
>>> parsing performance was diabolical (10 times slower). I think that
>>> could perhaps be improved if the files don't require an atomic move
>>> during creation but I haven't had time to look further at it.
>>>
>>> So whilst I do agree, what is the price people are willing to pay to
>>> have those better messages?
>>
>> I have a build machine that every so often runs into "basehash
>> mismatch" problems (but never when you want it to, such
>> as now), so getting some information on what might cause it would be
>> "priceless". I'd happily let the machine run for 10
>> days straight if at the end I get a message that I can work with.
>>
>> Which implies that any performance hit is acceptable, if there's a
>> switch to enable and disable that extra diagnostic.
>> Oh dear, just what we need, yet another switch...
>>
>
> I wonder if it could be something as simple as an NTP time update
> which happens periodically on my build machine? Since I've only
> ever seen this message _once_ after literally thousands of builds,
> it is a rare bird indeed!
>
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2016-06-08 14:35 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-06-05 16:44 What's this Gary Thomas
2016-06-07 16:02 ` Burton, Ross
2016-06-07 16:20 ` Burton, Ross
2016-06-07 16:58 ` Gary Thomas
2016-06-07 21:29 ` Joshua G Lock
2016-06-07 21:24 ` Paul Eggleton
2016-06-07 22:20 ` Richard Purdie
2016-06-08 8:59 ` Paul Eggleton
2016-06-08 11:30 ` Richard Purdie
2016-06-08 9:08 ` Mike Looijmans
2016-06-08 9:18 ` Gary Thomas
2016-06-08 11:59 ` Julien Gueytat
2016-06-07 16:24 ` Gary Thomas
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.