I'm also at a loss trying to understand how this particular change could've caused the tests to hang.
__VSCMD_PREINIT_PATH=C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\Scripts\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\dotnet\;C:\Program Files (x86)\GtkSharp\2.12\bin;C:\Program Files\CMake\bin;C:\Program Files (x86)\swigwin-3.0.12;C:\Program Files (x86)\GetGnuWin32\gnuwin32\bin;c:\Python27\Scripts\;C:\Program Files (x86)\Ninja;C:\Program Files\Git\cmd;C:\Program Files\TortoiseSVN\bin;C:\Users\buildslave\AppData\Local\Microsoft\WindowsApps;C:\Python27\lib\site-packages\pywin32_system32;C:\Python27\lib\site-packages\pywin32_system32 using PTY: False This is what I see on the Windows bot, so, I expect that it runs Python 3.6, but the whole fix is conditional to PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 7. On Tue, Mar 5, 2019 at 7:53 AM Davide Italiano <dccitali...@gmail.com> wrote: > > This is unfortunate, because I think it's the correct path forward. > Stella, do you know why this is failing on Windows? > > Thanks, > > -- > Davide > > > On Tue, Mar 5, 2019 at 7:26 AM Tatyana Krasnukha via lldb-commits > <lldb-commits@lists.llvm.org> wrote: > > > > Author: tkrasnukha > > Date: Tue Mar 5 07:27:33 2019 > > New Revision: 355406 > > > > URL: http://llvm.org/viewvc/llvm-project?rev=355406&view=rev > > Log: > > Revert "Fix embedded Python initialization according to changes in version > > 3.7" > > > > Testsuite hangs on Windows likely due to these changes. > > > > Modified: > > > > lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp > > > > Modified: > > lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp > > URL: > > http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp?rev=355406&r1=355405&r2=355406&view=diff > > ============================================================================== > > --- > > lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp > > (original) > > +++ > > lldb/trunk/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp > > Tue Mar 5 07:27:33 2019 > > @@ -156,7 +156,7 @@ public: > > if (m_was_already_initialized) { > > Log *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_SCRIPT)); > > LLDB_LOGV(log, "Releasing PyGILState. Returning to state = > > {0}locked", > > - m_gil_state == PyGILState_UNLOCKED ? "un" : ""); > > + m_was_already_initialized == PyGILState_UNLOCKED ? "un" : > > ""); > > PyGILState_Release(m_gil_state); > > } else { > > // We initialized the threads in this function, just unlock the GIL. > > @@ -180,18 +180,6 @@ private: > > } > > > > void InitializeThreadsPrivate() { > > -// Since Python 3.7 `Py_Initialize` calls `PyEval_InitThreads` inside > > itself, > > -// so there is no way to determine whether the embedded interpreter > > -// was already initialized by some external code. > > `PyEval_ThreadsInitialized` > > -// would always return `true` and `PyGILState_Ensure/Release` flow would be > > -// executed instead of unlocking GIL with `PyEval_SaveThread`. When > > -// an another thread calls `PyGILState_Ensure` it would get stuck in > > deadlock. > > -#if (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 7) || (PY_MAJOR_VERSION > > > 3) > > -// The only case we should go further and acquire the GIL: it is unlocked. > > - if (PyGILState_Check()) > > - return; > > -#endif > > - > > if (PyEval_ThreadsInitialized()) { > > Log *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_SCRIPT)); > > > > > > > > _______________________________________________ > > lldb-commits mailing list > > lldb-commits@lists.llvm.org > > https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits