<div><div dir="auto">Oops, you are absolutely correct, will send a V2 fixing that.</div></div><div dir="auto"><br></div><div dir="auto">We can continue this discussion on V2.</div><div dir="auto"><br></div><div dir="auto">//Ming Liu</div><div><br><div class="gmail_quote"><div dir="ltr">Richard Purdie &lt;<a href="mailto:richard.purdie@linuxfoundation.org">richard.purdie@linuxfoundation.org</a>&gt;于2019年1月25日 周五15:10写道:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Fri, 2019-01-25 at 14:44 +0100, Ming Liu wrote:<br>
&gt; Hi, Richard:<br>
&gt; <br>
&gt; Involve in Mark.<br>
&gt; <br>
&gt; Please correct me if I am wrong, but according to the code, seems<br>
&gt; these upper level locks could not protect this race condition,<br>
&gt; because it&#39;s inside the GitSM unpack function, the call chain is:<br>
&gt; <br>
&gt; Inside GitSM:<br>
&gt; ```<br>
&gt; def unpack<br>
&gt;   -&gt; for module in submodules:<br>
&gt;        -&gt; unpack_submodules <br>
&gt;             -&gt; runfetchcmd<br>
&gt;                  -&gt; bb.process.run<br>
&gt;                       -&gt; git config submodule<br>
&gt; ```<br>
&gt; <br>
&gt; since &#39;git config submodule&#39; run concurrently and try to modify a<br>
&gt; same git config file, hence the race might happen, but it&#39;s hard to<br>
&gt; be reproduced since &#39;git config submodule&#39; finishes quite quickly.<br>
<br>
for that git config call, workdir=ud.destdir so its not in any shared<br>
location like DL_DIR but in a recipe&#39;s workdir?<br>
<br>
Cheers,<br>
<br>
Richard<br>
<br>
</blockquote></div></div>