<div dir="ltr"><div class="gmail_default" style="font-size:small"><font size="1" face="monospace">Is there _lldb.pyd in D:\src\llvm\build\ninja_dbg\Lib\site-packages\lldb ?<br></font></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Nov 3, 2020 at 4:53 PM Adrian McCarthy via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org">lldb-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr">For the past couple weeks, I've been trying to figure out why approximately 900+ LLDB tests have been failing for me on my local Windows builds.  Bisect turned up nothing--the "good" version that was working for me no longer works.  Since nobody else seems to be seeing these failures, I suspect it's something environmental.<div><br></div><div>There are three categories of errors.  I'm currently focused on failures that look like this:</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><font size="1" face="monospace">FAIL: lldb-api :: lang/objc/unicode-string/TestUnicodeString.py (732 of 2180)<br>******************** TEST 'lldb-api :: lang/objc/unicode-string/TestUnicodeString.py' FAILED ********************<br>Script:<br>--<br>C:/Program Files/Python38/python.exe D:/src/llvm/llvm-project/lldb\test\API\dotest.py -S nm -u CXXFLAGS -u CFLAGS --enable-crash-dialog --env LLVM_LIBS_DIR=D:/src/llvm/build/ninja_dbg/./lib --arch x86_64 --build-dir D:/src/llvm/build/ninja_dbg/lldb-test-build.noindex -s D:/src/llvm/build/ninja_dbg/lldb-test-traces --lldb-module-cache-dir D:/src/llvm/build/ninja_dbg/lldb-test-build.noindex/module-cache-lldb\lldb-api --clang-module-cache-dir D:/src/llvm/build/ninja_dbg/lldb-test-build.noindex/module-cache-clang\lldb-api --executable D:/src/llvm/build/ninja_dbg/./bin/lldb.exe --compiler D:/src/llvm/build/ninja_dbg/bin/clang.exe --dsymutil D:/src/llvm/build/ninja_dbg/./bin/dsymutil.exe --filecheck D:/src/llvm/build/ninja_dbg/./bin/FileCheck.exe --yaml2obj D:/src/llvm/build/ninja_dbg/./bin/yaml2obj.exe --lldb-libs-dir D:/src/llvm/build/ninja_dbg/./lib D:\src\llvm\llvm-project\lldb\test\API\lang\objc\unicode-string -p TestUnicodeString.py<br>--<br>Exit Code: 1<br><br>Command Output (stdout):<br>--<br>lldb version 12.0.0 (<a href="https://github.com/llvm/llvm-project.git" target="_blank">https://github.com/llvm/llvm-project.git</a> revision 0fdcd1ae1c988fa19d0c97e99999e8678b93a0da)<br>  clang revision 0fdcd1ae1c988fa19d0c97e99999e8678b93a0da<br>  llvm revision 0fdcd1ae1c988fa19d0c97e99999e8678b93a0da<br><br>--<br>Command Output (stderr):<br>--<br>Traceback (most recent call last):<br>  File "D:\src\llvm\build\ninja_dbg\Lib\site-packages\lldb\__init__.py", line 35, in <module><br>    import _lldb<br>ModuleNotFoundError: No module named '_lldb'<br><br>During handling of the above exception, another exception occurred:<br><br>Traceback (most recent call last):<br>  File "D:/src/llvm/llvm-project/lldb\test\API\dotest.py", line 7, in <module><br>    lldbsuite.test.run_suite()<br>  File "D:\src\llvm\llvm-project\lldb\packages\Python\lldbsuite\test\dotest.py", line 874, in run_suite<br>    import lldb<br>  File "D:\src\llvm\build\ninja_dbg\Lib\site-packages\lldb\__init__.py", line 38, in <module><br>    from . import _lldb<br><span style="background-color:rgb(255,255,0)">ImportError: cannot import name '_lldb' from partially initialized module 'lldb' (most likely due to a circular import) (D:\src\llvm\build\ninja_dbg\Lib\site-packages\lldb\__init__.py)</span></font></blockquote><div><br></div><div>It looks like the code in question is generated by Swig (so perhaps it depends on the version of Swig?).  The relevant bit seems to be:</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><font size="1" face="monospace">try:<br>    # Try an absolute import first.  If we're being loaded from lldb,<br>    # _lldb should be a built-in module.<br>    import _lldb<br>except ImportError:<br>    # Relative import should work if we are being loaded by Python.<br>    <span style="background-color:rgb(255,255,0)">from . import _lldb</span></font></blockquote><div><br></div><div>I don't have much background in Python modules or how Swig produces the bindings.  It seems suspicious to me that both import attempts are failing (and that we need two).  I'm hoping someone can offer some clues about what's going on here and how it's supposed to work.  Is the hint about an import cycle relevant or a red herring?</div><div><br></div><div>Python 3.8.2</div><div>Swig 3.0.12</div><div><br></div><div>Thanks,</div><div>Adrian.</div></div></div></div>
_______________________________________________<br>
lldb-dev mailing list<br>
<a href="mailto:lldb-dev@lists.llvm.org" target="_blank">lldb-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev</a><br>
</blockquote></div>