New submission from Darren Hamilton <d.hamil...@procept-biorobotics.com>:
This is related to https://bugs.python.org/issue17797, which is closed. Using Python 3.7.4, Windows 10.0.18362, Visual Studio 2017 and running as a C Application. Py_Initialize() eventually calls is_valid_fd with STDIN. The behavior appears to cause both dup() and fstat() to hang indefinitely (using RELEASE MSVCRT DLLs, it works correctly using MSVCRT Debug DLLs). The call stack shows Windows is waiting for some Windows Event. The recommended patch in issue17797 will not work. is_valid_fd appears to want to read the 'input' using a file descriptor. since both dup and fstat hang, I realized that isatty() would indicate if the file descriptor is valid and works for any predefined FD descriptor(STDIN-0, STDOUT-1, STDERR-2). #if defined(MS_WINDOWS) struct stat buf; if (fd >= fileno(stdin) && fd <= fileno(stderr)) { return (_isatty(fd) == 0 && errno == EBADF) ? 0 : 1; } else if (fstat(fd, &buf) < 0 && (errno == EBADF || errno == ENOENT)) return 0; return 1; #else ---------- components: Library (Lib), Windows messages: 360070 nosy: dhamilton, paul.moore, steve.dower, tim.golden, zach.ware priority: normal severity: normal status: open title: Py_Initialize Hangs on Windows 10 type: behavior versions: Python 3.7 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue39345> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com