<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 <<a href="mailto:richard.purdie@linuxfoundation.org">richard.purdie@linuxfoundation.org</a>>于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>
> Hi, Richard:<br>
> <br>
> Involve in Mark.<br>
> <br>
> Please correct me if I am wrong, but according to the code, seems<br>
> these upper level locks could not protect this race condition,<br>
> because it's inside the GitSM unpack function, the call chain is:<br>
> <br>
> Inside GitSM:<br>
> ```<br>
> def unpack<br>
> -> for module in submodules:<br>
> -> unpack_submodules <br>
> -> runfetchcmd<br>
> -> bb.process.run<br>
> -> git config submodule<br>
> ```<br>
> <br>
> since 'git config submodule' run concurrently and try to modify a<br>
> same git config file, hence the race might happen, but it's hard to<br>
> be reproduced since 'git config submodule' 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's workdir?<br>
<br>
Cheers,<br>
<br>
Richard<br>
<br>
</blockquote></div></div>