<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Apr 28, 2014 at 8:35 AM, Christopher Larson <span dir="ltr">&lt;<a href="mailto:kergoth@gmail.com" target="_blank">kergoth@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><div class="adM"><div class=""><div class="gmail_quote">On Mon, Apr 28, 2014 at 8:31 AM, Chris Larson <span dir="ltr">&lt;<a href="mailto:kergoth@gmail.com" target="_blank">kergoth@gmail.com</a>&gt;</span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="gmail_extra"><div><div class="gmail_quote">
On Mon, Apr 28, 2014 at 8:27 AM, Christopher Larson <span dir="ltr">&lt;<a href="mailto:kergoth@gmail.com" target="_blank">kergoth@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="overflow:hidden">Doing so was causing leakage between the execs of the main value and that of<br>




the subshell value, and was causing the cached subshell value to be used for<br>
the overall variable. At the least this could cause execs contamination<br>
between two variables that while differing, run the same subshell. Beyond<br>
that, it&#39;s possible we could have been using an incomplete cached value of<br>
a subshell for that of the main value.<br>
<br>
Before this, bb_codeparser.dat would change between parses with differing<br>
bbfile parse order. After, it does not change.<br>
<br>
The codeparser cache version is bumped, to ensure we don&#39;t use potentially<br>
incorrect cached values from previous runs.<br>
<br>
This should hopefully resolve the difficult-to-reproduce issues we&#39;ve seen at<br>
Mentor Graphics where bitbake emits a script to run a task and misses<br>
dependent functions, resulting in &#39;command not found&#39; failures. This issue has<br>
also been mentioned on the oe devel list, where someone hit a case where<br>
oe_runmake was missing from a do_install task (IIRC). Adding debug information<br>
showed that bitbake&#39;s information about the variable dependencies for this<br>
task is inaccurate in the failure cases.</div></blockquote></div><br></div>We&#39;re trying to confirm the fix, but given it&#39;s not really reproducible, and only seemed</div><div class="gmail_extra">to be hit during automated builds, it&#39;ll be difficult to say with certainty that the problem</div>



<div class="gmail_extra">is resolved. That said, I think it&#39;s clear from reading the code that this is the correct</div><div class="gmail_extra">thing, and the previous beahvior was just an unintentional oversight when the cache</div>



<div class="gmail_extra">usage was added.</div></blockquote></div><br></div></div>For reference, <a href="https://gist.github.com/kergoth/11301539" target="_blank">https://gist.github.com/kergoth/11301539</a> was used to track changes to</div>

<div class="gmail_extra">
bb_codeparser.dat to investigate this.</div></blockquote></div><br>Sorry for yet another email on this thread, but I wanted to thank Richard for his guidance</div><div class="gmail_extra">on this. His suggestion to look at the caching, specifically with an eye toward file parse</div>

<div class="gmail_extra">order, proved to be dead on, and valuable.</div><div class="gmail_extra">-- <br>Christopher Larson<br>clarson at kergoth dot com<br>Founder - BitBake, OpenEmbedded, OpenZaurus<br>Maintainer - Tslib<br>

Senior Software Engineer, Mentor Graphics
</div></div>