<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class=""><span class="">Hi Adam,</span></div><div class=""><span class=""><br class=""></span></div><span class="">I think the best idea is to comment on the commit on Phabricator ( <a href="http://reviews.llvm.org" class="">reviews.llvm.org</a> ) as it seems to be a relatively recent change. Otherwise if you can somehow provide way to reproduce the deadlock using only code you can share + LLVM.org sources then filing a bug would be an option too.<br class=""></span><div class=""><br class=""></div><div class="">Regarding what information you should provide: Pretty much everything that you can share would help. At least the backtrace of all threads in the deadlocked state would be good to know. And of course the commit your bisect stopped at if it's a bug report. From there people might have an idea how to reproduce the issue in a unit test or via the SB API (or what could be going wrong in your downstream fork).</div><div class=""><br class=""></div><div class="">And I believe you can't use the reproducer feature here as that requires having the respective LLDB binary to replay (which you probably can't share).</div><div class=""><br class=""></div><div class="">- Raphael</div><div class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 22 Jun 2021, at 19:10, Adam HARRIES via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org" class="">lldb-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Hi all, <div class=""><br class=""></div><div class="">I've recently taken over maintenance of my company's llvm+lldb branch, where we have added support for our in-house architecture (in llvm) as well as support for debugging through both hardware and our simulator. Our llvm fork is public/open source, however many of our runtime libraries and drivers (which are linked into lldb, clang, etc, and provide built-ins and driver support etc) are not. <br class=""><br class="">While attempting to update our branch from llvm-11 to llvm-12 we came across a commit[1] in lldb which quite reliably causes a deadlock when we launch a process to debug a core dump. Luckily, said commit simply modifies some concurrency primitives, and reverting it is sufficient to fix the bug without any further effects. We are quite confident that the commit is the issue, as we performed a thorough bisect which maintained "our" code unchanged throughout.<br class=""><br class="">Unfortunately, however, we are unable to reproduce this bug in any "open" architectures (such as x86-64, AArch64, etc), so are not entirely sure how we should go about reporting the bug. Additionally, it makes it difficult to open a discussion regarding whether the commit is correct (and thus we may need to modify our additions to lldb to match new implicit behaviour), as third parties may be unable to reproduce the issue. Finally, as the bug results in a deadlock (which requires a sigkill to end) we won't (as I understand it) be able to use a "Reproducer" to demonstrate the bug to third parties. </div><div class=""><br class=""></div><div class="">Although we are able to "solve" the issue locally (by reverting the commit), we feel that the better solution would be to feed back our findings to the community and solve the issue, rather than (privately) sweeping it under the rug. As components of our compiler are proprietary, however, this process becomes difficult due to the reasons listed above.</div><div class=""><br class="">To summarise, there are two main questions that I feel unable to answer: </div><div class="">- Is there an existing process for reporting bugs that only affect third parties, and which cannot be reproduced in "core" targets. </div><div class="">- To what extend is it possible to discuss (or report) bugs "on faith" - as in without any concrete evidence that a third party can reproduce.</div><div class=""><br class=""></div><div class="">We are currently looking into opening up our build process so that we are able to distribute binary libraries to enable third parties to build our compiler + debugger, but as this is currently a work-in-progress it is unfortunately not a solution to this issue. <br class=""><br class="">Many thanks in advance for any and all advice.<br class="">Yours,</div><div class=""><br class="">-- <br class=""><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr" class=""><div class=""><b class=""><font color="#666666" class="">Adam Brouwers-Harries</font></b><br class=""></div><div class=""><font color="#666666" class="">Compiler Engineer</font></div><div class=""><font color="#666666" class=""><a href="mailto:aharries@upmem.com" target="_blank" class="">aharries@upmem.com</a></font></div><div class=""><br class=""></div><div class="">[1] Please note, I have specifically not named this commit as I wish to better understand the "meta"-bug filing process, and I do not wish to publicly assign blame for any bugs without understanding how and why I can do so respectfully and properly.</div></div></div></div></div>
_______________________________________________<br class="">lldb-dev mailing list<br class=""><a href="mailto:lldb-dev@lists.llvm.org" class="">lldb-dev@lists.llvm.org</a><br class="">https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev<br class=""></div></blockquote></div><br class=""></div></body></html>