[issue40403] pdb does not drop into debugger upon SyntaxError caused by ast.literal_eval
Xavier de Gaye added the comment: > Perhaps we should should test whether the exception happened there and not > drop in the debugger in that case? The same kind of problem occurs for any post-mortem debugging raised by an uncaught exception in the user code: the backtrace displayed by the 'bt' command shows frames that are owned by the pdb and bdb modules; and worse, the 'up' command allows to move to these frames. See for example below what happens when debugging foo.py that contains only the line "1/0". IMO this problem should be handled in another issue and in that case, in your example, 'bt' output would be empty. $ python -m pdb foo.py > /tmp/foo.py(1)() -> 1/0 (Pdb) c Traceback (most recent call last): File "/usr/lib/python3.8/pdb.py", line 1703, in main pdb._runscript(mainpyfile) File "/usr/lib/python3.8/pdb.py", line 1572, in _runscript self.run(statement) File "/usr/lib/python3.8/bdb.py", line 580, in run exec(cmd, globals, locals) File "", line 1, in File "/tmp/foo.py", line 1, in 1/0 ZeroDivisionError: division by zero Uncaught exception. Entering post mortem debugging Running 'cont' or 'step' will restart the program > /tmp/foo.py(1)() -> 1/0 (Pdb) bt /usr/lib/python3.8/pdb.py(1703)main() -> pdb._runscript(mainpyfile) /usr/lib/python3.8/pdb.py(1572)_runscript() -> self.run(statement) /usr/lib/python3.8/bdb.py(580)run() -> exec(cmd, globals, locals) (1)() > /tmp/foo.py(1)() -> 1/0 (Pdb) -- ___ Python tracker <https://bugs.python.org/issue40403> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue40403] pdb does not drop into debugger upon SyntaxError caused by ast.literal_eval
Xavier de Gaye added the comment: In Kerrick's example ast.literal_eval('') could be ast.literal_eval(some_code) instead where some_code is a string containing dynamically generated Python code. pdb post-mortem debugging must allow finding the syntax error in this code. The patch proposed in issue 16180 by Terry may fix this problem (and issue 16180). -- ___ Python tracker <https://bugs.python.org/issue40403> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue22699] Module source files not found when cross-compiling
Xavier de Gaye added the comment: > Is that epic line automatically generated? When cross compiling it is generated by the configure script and configure replaces the right hand side of "PYTHON_FOR_BUILD=@PYTHON_FOR_BUILD@" of Makefile.pre.in with the generated value into Makefile.pre. I think you may be missing the point that when this 'epic line' is being used then PYTHONPATH points to the location of the sysconfig module that has been newly built for the target platform, and so the values should be correct. -- ___ Python tracker <https://bugs.python.org/issue22699> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue22699] Module source files not found when cross-compiling
Xavier de Gaye added the comment: Steve wrote: > In my build, I've set PYTHON_FOR_BUILD=python3.8 This will not work, PYTHON_FOR_BUILD when cross-compiling is set by configure as: PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib _PYTHON_SYSCONFIGDATA_NAME=_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH) '$interp FWIW there is no problem cross-compiling Python and the standard library extension modules on Android, see for example the 'termux' Android application and its Python build. On the other hand there are problems when cross-compiling third party extension modules due to: * PYTHON_FOR_BUILD must be set correctly. * distutils is still refering to sysconfig values of the build system instead of the target system. But setup.py handles this correctly and does not need to be modified. -- nosy: +xdegaye ___ Python tracker <https://bugs.python.org/issue22699> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue39430] tarfile.open(mode="r") race condition when importing lzma
Xavier de Gaye added the comment: This fixed the bug. To reproduce the bug, substitute the "from _lzma import *" statement with "raise ImportError" in Lib/lzma.py to simulate that the _lzma module is missing and run the test.py script written and uploaded by Maciej. -- ___ Python tracker <https://bugs.python.org/issue39430> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue39430] tarfile.open(mode="r") race condition when importing lzma
Xavier de Gaye added the comment: In msg360620 Serhiy wrote: > When the interpreter encounters "import foo" in bar.py, the import machinery > takes the module foo from sys.modules. > So you break an infinite cycle and can import modules with cyclic > dependencies. The following pdb session that is run when executing the foo.py script, shows that this is not quite accurate. When the interpreter encounters "import foo" in bar.py, the import machinery instead starts executing foo.py once again and detects that at line 9 of foo.py the 'import bar' statement does not have to be executed since the import machinery is already in the process of importing this module. So it is at that point that the infinite cycle is broken. Later on line 12 in foo.py the import machinery detects that the AttributeError is raised because of a circular import and warns that "partially initialized module 'bar' has no attribute 'BAR' (most likely due to a circular import)". $ cat -n foo.py 1 import pdb 2 debug = 1 3 4 # Prevent starting a new pdb session when foo is imported by bar. 5 if debug and not hasattr(pdb, 'is_pdb_started'): 6 pdb.Pdb(skip=['importlib*']).set_trace() 7 pdb.is_pdb_started = True 8 9 import bar 10 FOO = 'foo' 11 try: 12 print(bar.BAR) 13 except AttributeError as e: 14 # The exception is raised with an explicit reason when foo is imported by 15 # bar due to partially initialized module 'bar'. 16 print(e) $ cat -n bar.py 1 import foo 2 BAR = 'bar' 3 print(foo.FOO) $ python foo.py > /tmp/foo.py(7)() -> pdb.is_pdb_started = True (Pdb) step > /tmp/foo.py(9)() -> import bar (Pdb) step --Call-- > /tmp/bar.py(1)() -> import foo (Pdb) step > /tmp/bar.py(1)() -> import foo (Pdb) step --Call-- > /tmp/foo.py(1)() -> import pdb (Pdb) step > /tmp/foo.py(1)() -> import pdb (Pdb) step > /tmp/foo.py(2)() -> debug = 1 (Pdb) step > /tmp/foo.py(5)() -> if debug and not hasattr(pdb, 'is_pdb_started'): (Pdb) step > /tmp/foo.py(9)() -> import bar (Pdb) step > /tmp/foo.py(10)() -> FOO = 'foo' (Pdb) step > /tmp/foo.py(11)() -> try: (Pdb) step > /tmp/foo.py(12)() -> print(bar.BAR) (Pdb) step AttributeError: partially initialized module 'bar' has no attribute 'BAR' (most likely due to a circular import) > /tmp/foo.py(12)() -> print(bar.BAR) (Pdb) step > /tmp/foo.py(13)() -> except AttributeError as e: (Pdb) step > /tmp/foo.py(16)() -> print(e) (Pdb) step partially initialized module 'bar' has no attribute 'BAR' (most likely due to a circular import) --Return-- > /tmp/foo.py(16)()->None -> print(e) (Pdb) step > /tmp/bar.py(2)() -> BAR = 'bar' (Pdb) step > /tmp/bar.py(3)() -> print(foo.FOO) (Pdb) step foo --Return-- > /tmp/bar.py(3)()->None -> print(foo.FOO) (Pdb) step > /tmp/foo.py(10)() -> FOO = 'foo' (Pdb) step > /tmp/foo.py(11)() -> try: (Pdb) step > /tmp/foo.py(12)() -> print(bar.BAR) (Pdb) step bar --Return-- > /tmp/foo.py(12)()->None -> print(bar.BAR) (Pdb) step $ -- nosy: +xdegaye ___ Python tracker <https://bugs.python.org/issue39430> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue22724] byte-compile fails for cross-builds
Xavier de Gaye added the comment: PYTHON_FOR_BUILD does not use PYTHONPATH in the implementation of (closed) PR 17420 and should fix the current issue as a side effect. FWIW, PR 17420 fixes cross-compilation of third-party extension modules by replacing the complex PYTHON_FOR_BUILD command line set in configure.ac by the more simple command: "PYTHON_FOR_BUILD='PYTHON_PROJECT_BASE=$(abs_builddir) '$interp" In this PR finding the path name of the target sysconfigdata module when needed is done by the sysconfig module and by distutils using the Misc/python-config.sh.in script instead of using PYTHONPATH. Since PYTHONPATH is not used in PR 17420, the current issue should also be fixed by the PR. See also Benedikt OP that provided a hint for the fix. -- nosy: +xdegaye ___ Python tracker <https://bugs.python.org/issue22724> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue39052] import error when in python -m pdb debug mode
Xavier de Gaye added the comment: As a workaround insert the following hard-coded breakpoint before the import statement and run your script with python, i.e. 'python myhome.py' instead of 'python -m pdb myhome.p'. from pdb import Pdb; Pdb(skip=['importlib*']).set_trace() -- nosy: +xdegaye ___ Python tracker <https://bugs.python.org/issue39052> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue31114] 'make install' fails when the configure 'prefix' is '/' and DESTDIR is used
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue31114> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue30386] Add a build infrastructure for Android
Change by Xavier de Gaye : -- resolution: -> works for me stage: patch review -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue30386> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue26859] unittest fails with "Start directory is not importable" when trying to run sourceless tests
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue26859> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue26971] python v3.5.1: sys.paths not respecting DESTDIRS and DESTSHARED
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue26971> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue22724] byte-compile fails for cross-builds
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue22724> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue28125] identify cross builds by a more generic environment setting.
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue28125> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue28207] Use pkg-config to find dependencies
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue28207> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue28542] document cross compilation
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue28542> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue20211] setup.py: do not add system header locations when cross compiling
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue20211> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue29267] Cannot override some flags in CFLAGS from the command-line
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue29267> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue32461] the first build after a change to Makefile.pre.in uses the old Makefile
Change by Xavier de Gaye : -- resolution: -> not a bug stage: needs patch -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue32461> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue32202] [ctypes] all long double tests fail on android-24-x86_64
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue32202> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue26855] android: add platform.android_ver()
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue26855> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue32203] [ctypes] test_struct_by_value fails on android-24-arm64
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue32203> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue13886] readline-related test_builtin failure
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue13886> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue31046] ensurepip does not honour the value of $(prefix)
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue31046> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue35953] crosscompilation fails with clang on android
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue35953> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue26852] add the '--enable-sourceless-distribution' option to configure
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue26852> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue36145] android arm cross compilation fails, config issue
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue36145> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue35997] ImportError: dlopen failed: cannot locate symbol "PyBool_Type"
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue35997> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue36141] configure: error: could not find pthreads on your system during cross compilation
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue36141> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue36125] Cannot cross-compile to more featureful but same tune
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue36125> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue27640] add the '--disable-test-suite' option to configure
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue27640> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue36214] AC_RUN_IFELSE macros not used as arguments of AC_CACHE_VAL et al
Change by Xavier de Gaye : -- stage: patch review -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue36214> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue36351] the ipv6type variable in configure.ac may be set incorrectly when cross-compiling
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue36351> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue36361] generate correct pyconfig.h when cross-compiling
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue36361> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue28190] Cross-build _curses failed if host ncurses headers and target ncurses headers have different layouts
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue28190> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue28833] cross compilation of third-party extension modules
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue28833> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue25172] Unix-only crypt should not be present on Windows.
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue25172> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38849] test_timestamp_naive fails on android
Change by Xavier de Gaye : -- stage: resolved -> ___ Python tracker <https://bugs.python.org/issue38849> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38850] test_largefile fails on android
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue38850> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38851] UDPLITE tests fail on android
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue38851> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38840] incorrect __all__ list in multiprocessing.managers module
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue38840> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38848] compileall fails when the platform lacks a functional sem_open()
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue38848> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue35813] shared memory construct to avoid need for serialization between processes
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue35813> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue36758] configured libdir not correctly passed to Python executable
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue36758> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue36414] Multiple test failures in GCC and Clang optional builds on Travis CI
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue36414> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue25172] Unix-only crypt should not be present on Windows.
Xavier de Gaye added the comment: Not interested anymore in android stuff. -- ___ Python tracker <https://bugs.python.org/issue25172> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38850] test_largefile fails on android
Xavier de Gaye added the comment: Not interested anymore in android stuff. -- ___ Python tracker <https://bugs.python.org/issue38850> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38849] test_timestamp_naive fails on android
Xavier de Gaye added the comment: Not interested anymore in android stuff. -- stage: needs patch -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue38849> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38851] UDPLITE tests fail on android
Xavier de Gaye added the comment: Not interested anymore in android stuff. -- ___ Python tracker <https://bugs.python.org/issue38851> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38848] compileall fails when the platform lacks a functional sem_open()
Xavier de Gaye added the comment: Not interested anymore in android stuff. -- ___ Python tracker <https://bugs.python.org/issue38848> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38840] incorrect __all__ list in multiprocessing.managers module
Xavier de Gaye added the comment: Not interested anymore in android stuff. -- ___ Python tracker <https://bugs.python.org/issue38840> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38852] test_recursion_limit in test_threading crashes with SIGSEGV on android
Change by Xavier de Gaye : -- nosy: -xdegaye ___ Python tracker <https://bugs.python.org/issue38852> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38949] incorrect prefix, exec_prefix in distutils.command.install
Xavier de Gaye added the comment: get_config_vars() defined in distutils.sysconfig sets 'prefix' and 'exec_prefix' using sys.prefix (resp. sys.exec_prefix) on non nt platforms so there is no problem. Closing the issue as not a bug. -- resolution: -> not a bug stage: needs patch -> resolved status: open -> closed ___ Python tracker <https://bugs.python.org/issue38949> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38992] testFsum failure caused by constant folding of a float expression
Xavier de Gaye added the comment: Yes PR GH-17513 does fix the problem. Thanks Mark. -- ___ Python tracker <https://bugs.python.org/issue38992> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38992] testFsum failure caused by constant folding of a float expression
Change by Xavier de Gaye : Added file: https://bugs.python.org/file48763/foo.arm64 ___ Python tracker <https://bugs.python.org/issue38992> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38992] testFsum failure caused by constant folding of a float expression
New submission from Xavier de Gaye : Title: testFsum failure caused by constant folding of a float expression Description: Python (Python 3.9.0a1+ heads/master-dirty:ea9835c5d1) is built on a Linux x86_64. This native interpreter is used to cross-compile Python (using the same source) to Android API 24. Next the installation is done locally to DESTDIR by running 'make install' with the env var DESTDIR set and the standard library modules are compiled by the native interpreter during this process. The content of DESTDIR is then copied to an arm64 android device (Huawei FWIW). The test_math.MathTests.testFsum test fails on the android device with: AssertionError: -4.309103330548428e+214 != -1.0 This occurs when testing '([1.7**(i+1)-1.7**i for i in range(1000)] + [-1.7**1000], -1.0)' in test_values. Next the test_math.py file is touched on the android device to force recompilation of the module and testFsum becomes surprisingly successful. Investigation: -- The hexadecimal representation of 1.7**n on x86_64 and arm64 are: * different for n in (10, 100, 1000) * equal for n in [0, 9] or 11 on x86_64: >>> 1.7**10 201.59939004489993 >>> (1.7**10).hex() '0x1.9332e34080c95p+7' on arm64: >>> 1.7**10 201.59939004489996 >>> (1.7**10).hex() '0x1.9332e34080c96p+7' The output of the following foo.py module that has been run on x86_64 and arm64 are attached to this issue: ### import math, dis def test_fsum(): x = [1.7**(i+1)-1.7**i for i in range(10)] + [-1.7**10] return x y = test_fsum() print(y) print(math.fsum(y)) dis.dis(test_fsum) ### The only difference between both dissasembly of test_fsum() is at bytecode 16 that loads the folded constant 1.7**10. Conclusion: --- The compilation of the expression '[1.7**(i+1)-1.7**i for i in range(1000)] + [-1.7**1000]' on x86_64 folds '1.7**1000' to 2.8113918290273277e+230 When the list comprehension (the first term of the expression) is executed on arm64, then 1.7**1000 is evaluated as 2.8113918290273273e+230. On arm64 1.7**1000 - 2.8113918290273277e+230 = -4.309103330548428e+214, hence the AssertionError above. This is confirmed by changing testFsum to prevent constant folding by replacing 1000 in the testFsum expression with a variable whose value is 1000. In that case the test_math module compiled on x86_64 is successful on arm64. This could be a fix for this issue unless this fix would be hiding another problem such as .pyc files portability across different platforms and my knowledge of IEEE 754 is too superficial to answer that point. -- components: Tests files: foo.x86_64 messages: 357969 nosy: tim.peters, vstinner, xdegaye priority: normal severity: normal stage: needs patch status: open title: testFsum failure caused by constant folding of a float expression type: behavior versions: Python 3.9 Added file: https://bugs.python.org/file48762/foo.x86_64 ___ Python tracker <https://bugs.python.org/issue38992> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38949] incorrect prefix, exec_prefix in distutils.command.install
New submission from Xavier de Gaye : In function finalize_options() of Lib/distutils/command/install.py at https://github.com/python/cpython/blob/575d0b46d122292ca6e0576a91265d7abf7cbc3d/Lib/distutils/command/install.py#L284 (prefix, exec_prefix) is set using get_config_vars(). This may be incorrect when Python has been manually copied in another location from the location where it has been installed with 'make install'. We should use sys.prefix and sy.exec_prefix instead, those values are calculated by getpath.c instead of being retrieved from the sysconfigdata module. -- components: Distutils messages: 357678 nosy: dstufft, eric.araujo, xdegaye priority: normal severity: normal stage: needs patch status: open title: incorrect prefix, exec_prefix in distutils.command.install type: behavior versions: Python 3.9 ___ Python tracker <https://bugs.python.org/issue38949> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue28833] cross compilation of third-party extension modules
Xavier de Gaye added the comment: PR 17420 fixes cross-compilation of third-party extension modules. The PYTHON_PROJECT_BASE environment variable is the path to the directory where Python has been cross-compiled. It is used by the native python interpreter to find the target sysconfigdata module. For example the following command builds a wheel file to be transfered and installed with pip on the target platform, provided the native python interpreter and the cross-compiled one both have the wheel package installed: $ PYTHON_PROJECT_BASE=/path/to/builddir python setup.py bdist_wheel -- ___ Python tracker <https://bugs.python.org/issue28833> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue28833] cross compilation of third-party extension modules
Change by Xavier de Gaye : -- pull_requests: +16901 pull_request: https://github.com/python/cpython/pull/17420 ___ Python tracker <https://bugs.python.org/issue28833> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38852] test_recursion_limit in test_threading crashes with SIGSEGV on android
Xavier de Gaye added the comment: Using test and try with _thread.stack_size(new_size), the pthread stack sizes must be set to the following minimums to prevent stack overflow and get a RecursionError: * debug builds:7 Mb * no-debug builds: 1 Mb The default stack size for the main thread does not need to be changed as test test_exceptions.ExceptionTests.testInfiniteRecursion is ok for both build types. PR 17337 sets the thread stack size to 8 Mb for debug builds on android platforms. -- ___ Python tracker <https://bugs.python.org/issue38852> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38852] test_recursion_limit in test_threading crashes with SIGSEGV on android
Change by Xavier de Gaye : -- keywords: +patch pull_requests: +16821 stage: needs patch -> patch review pull_request: https://github.com/python/cpython/pull/17337 ___ Python tracker <https://bugs.python.org/issue38852> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue37906] FreeBSD: test_threading: test_recursion_limit() crash with SIGSEGV and create a coredump
Xavier de Gaye added the comment: See the android related issue #38852. -- nosy: +xdegaye ___ Python tracker <https://bugs.python.org/issue37906> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38852] test_recursion_limit in test_threading crashes with SIGSEGV on android
Xavier de Gaye added the comment: The crash occurs only on debug builds. See the FreeBSD related issue #37906. -- ___ Python tracker <https://bugs.python.org/issue38852> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38848] compileall fails when the platform lacks a functional sem_open()
Change by Xavier de Gaye : -- keywords: +patch pull_requests: +16792 stage: needs patch -> patch review pull_request: https://github.com/python/cpython/pull/17300 ___ Python tracker <https://bugs.python.org/issue38848> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38841] [asyncio] bind() on a unix socket raises PermissionError on Android for a non-root user
Change by Xavier de Gaye : -- resolution: -> fixed stage: patch review -> resolved status: open -> closed versions: +Python 3.8 ___ Python tracker <https://bugs.python.org/issue38841> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38848] compileall fails when the platform lacks a functional sem_open()
Xavier de Gaye added the comment: Changing the title to "compileall fails when the platform lacks a functional sem_open()" as the problem lies in the compileall module itself. Nosying Antoine as the author of issue #36786. compileall fails on android API 24: generic_x86_64:/data/local/tmp/python $ python -m compileall --workers=2 . Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/multiprocessing/synchronize.py", line 28, in from _multiprocessing import SemLock, sem_unlink ImportError: cannot import name 'SemLock' from '_multiprocessing' (/data/local/tmp/python/lib/python3.9/lib-dynload/_multiprocessing.cpython-39d.so) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/runpy.py", line 192, in _run_module_as_main return _run_code(code, main_globals, None, File "/data/local/tmp/python/lib/python3.9/runpy.py", line 85, in _run_code exec(code, run_globals) File "/data/local/tmp/python/lib/python3.9/compileall.py", line 425, in exit_status = int(not main()) File "/data/local/tmp/python/lib/python3.9/compileall.py", line 403, in main if not compile_dir(dest, maxlevels, args.ddir, File "/data/local/tmp/python/lib/python3.9/compileall.py", line 91, in compile_dir with ProcessPoolExecutor(max_workers=workers) as executor: File "/data/local/tmp/python/lib/python3.9/concurrent/futures/process.py", line 555, in __init__ self._call_queue = _SafeQueue( File "/data/local/tmp/python/lib/python3.9/concurrent/futures/process.py", line 165, in __init__ super().__init__(max_size, ctx=ctx) File "/data/local/tmp/python/lib/python3.9/multiprocessing/queues.py", line 42, in __init__ self._rlock = ctx.Lock() File "/data/local/tmp/python/lib/python3.9/multiprocessing/context.py", line 67, in Lock from .synchronize import Lock File "/data/local/tmp/python/lib/python3.9/multiprocessing/synchronize.py", line 30, in raise ImportError("This platform lacks a functioning sem_open" + ImportError: This platform lacks a functioning sem_open implementation, therefore, the required synchronization primitives needed will not function, see issue 3770. -- components: +Library (Lib) -Tests nosy: +pitrou title: test_compileall fails when the platform lacks a functional sem_open() -> compileall fails when the platform lacks a functional sem_open() ___ Python tracker <https://bugs.python.org/issue38848> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38840] incorrect __all__ list in multiprocessing.managers module
Change by Xavier de Gaye : -- keywords: +patch pull_requests: +16788 stage: needs patch -> patch review pull_request: https://github.com/python/cpython/pull/17296 ___ Python tracker <https://bugs.python.org/issue38840> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38841] [asyncio] bind() on a unix socket raises PermissionError on Android for a non-root user
Change by Xavier de Gaye : -- keywords: +patch pull_requests: +16787 stage: needs patch -> patch review pull_request: https://github.com/python/cpython/pull/17294 ___ Python tracker <https://bugs.python.org/issue38841> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38852] test_recursion_limit in test_threading crashes with SIGSEGV on android
New submission from Xavier de Gaye : Actually it is the script that is spawned by test_recursion_limit that crashes with SIGSEGV on android API 24. Lowering the recursion limit in the script from 1000 to 100 with sys.setrecursionlimit() fixes the problem. Here is the error: generic_x86_64:/data/local/tmp/python $ python -m test -v test_threading -m test_recursion_limit == CPython 3.9.0a0 (heads/abifa-dirty:cf805c25e6, Nov 18 2019, 16:40:26) [Clang 8.0.2 (https://android.googlesource.com/toolchain/clang 40173bab62ec7462 == Linux-3.10.0+-x86_64-with-libc little-endian == cwd: /data/local/tmp/python/tmp/test_python_4603 == CPU count: 2 == encodings: locale=UTF-8, FS=utf-8 0:00:00 Run tests sequentially 0:00:00 [1/1] test_threading test_recursion_limit (test.test_threading.ThreadingExceptionTests) ... FAIL == FAIL: test_recursion_limit (test.test_threading.ThreadingExceptionTests) -- Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/test/test_threading.py", line 1086, in test_recursion_limit self.assertEqual(p.returncode, 0, "Unexpected error: " + stderr.decode()) AssertionError: -11 != 0 : Unexpected error: -- Ran 1 test in 0.148s FAILED (failures=1) test test_threading failed test_threading failed == Tests result: FAILURE == 1 test failed: test_threading Total duration: 354 ms Tests result: FAILURE -- components: Tests messages: 356988 nosy: xdegaye priority: normal severity: normal stage: needs patch status: open title: test_recursion_limit in test_threading crashes with SIGSEGV on android type: crash versions: Python 3.9 ___ Python tracker <https://bugs.python.org/issue38852> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38851] UDPLITE tests fail on android
New submission from Xavier de Gaye : Attached test_socket.txt is the output of running 'python -m test -v test_socket' on android API 24. The 108 tests in error are UDPLITE tests introduced in issue #37345. -- components: Tests files: test_socket.txt messages: 356985 nosy: asvetlov, gappleto97, xdegaye priority: normal severity: normal stage: needs patch status: open title: UDPLITE tests fail on android type: behavior versions: Python 3.9 Added file: https://bugs.python.org/file48722/test_socket.txt ___ Python tracker <https://bugs.python.org/issue38851> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38841] [asyncio] bind() on a unix socket raises PermissionError on Android for a non-root user
Xavier de Gaye added the comment: No, it is the SELinux configuration on android devices that forbids binds to named UNIX sockets. Changing from a named UNIX socket to an unnamed UNIX socket would fix the problem. I don't know if all platforms support unnamed UNIX sockets. The fix in issue #28684 (referenced in the OP) provides a new decorator to skip the test for platforms such as android. -- ___ Python tracker <https://bugs.python.org/issue38841> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38850] test_largefile fails on android
New submission from Xavier de Gaye : The failure on andoid API 24: generic_x86_64:/data/local/tmp/python $ python -m test -v test_largefile -m test_it == CPython 3.9.0a0 (heads/abifa-dirty:cf805c25e6, Nov 18 2019, 16:40:26) [Clang 8.0.2 (https://andro id.googlesource.com/toolchain/clang 40173bab62ec7462 == Linux-3.10.0+-x86_64-with-libc little-endian == cwd: /data/local/tmp/python/tmp/test_python_2626 == CPU count: 2 == encodings: locale=UTF-8, FS=utf-8 0:00:00 Run tests sequentially 0:00:00 [1/1] test_largefile test_it (test.test_largefile.TestCopyfile) ... ERROR test_it (test.test_largefile.TestSocketSendfile) ... Exception in thread Thread-1: Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/threading.py", line 944, in _bootstrap_inner self.run() File "/data/local/tmp/python/lib/python3.9/threading.py", line 882, in run self._target(*self._args, **self._kwargs) File "/data/local/tmp/python/lib/python3.9/test/test_largefile.py", line 193, in run f.write(chunk) OSError: [Errno 28] No space left on device ERROR == ERROR: test_it (test.test_largefile.TestCopyfile) -- Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/test/test_largefile.py", line 160, in test_it shutil.copyfile(TESTFN, TESTFN2) File "/data/local/tmp/python/lib/python3.9/shutil.py", line 270, in copyfile _fastcopy_sendfile(fsrc, fdst) File "/data/local/tmp/python/lib/python3.9/shutil.py", line 163, in _fastcopy_sendfile raise err from None File "/data/local/tmp/python/lib/python3.9/shutil.py", line 149, in _fastcopy_sendfile sent = os.sendfile(outfd, infd, offset, blocksize) OSError: [Errno 28] No space left on device: '@test_2626_tmp' -> '@test_2626_tmp2' == ERROR: test_it (test.test_largefile.TestSocketSendfile) -- Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/test/test_largefile.py", line 207, in test_it shutil.copyfile(TESTFN, TESTFN2) File "/data/local/tmp/python/lib/python3.9/shutil.py", line 270, in copyfile _fastcopy_sendfile(fsrc, fdst) File "/data/local/tmp/python/lib/python3.9/shutil.py", line 163, in _fastcopy_sendfile raise err from None File "/data/local/tmp/python/lib/python3.9/shutil.py", line 149, in _fastcopy_sendfile sent = os.sendfile(outfd, infd, offset, blocksize) OSError: [Errno 28] No space left on device: '@test_2626_tmp' -> '@test_2626_tmp2' == ERROR: test_it (test.test_largefile.TestSocketSendfile) -- Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/test/test_largefile.py", line 207, in test_it client.sendfile(f) File "/data/local/tmp/python/lib/python3.9/socket.py", line 483, in sendfile return self._sendfile_use_sendfile(file, offset, count) File "/data/local/tmp/python/lib/python3.9/socket.py", line 400, in _sendfile_use_sendfile raise err from None File "/data/local/tmp/python/lib/python3.9/socket.py", line 386, in _sendfile_use_sendfile sent = os_sendfile(sockno, fileno, offset, blocksize) BrokenPipeError: [Errno 32] Broken pipe -- Ran 2 tests in 1.207s FAILED (errors=2) test test_largefile failed test_largefile failed == Tests result: FAILURE == 1 test failed: test_largefile Total duration: 1.4 sec Tests result: FAILURE -- components: Tests messages: 356976 nosy: xdegaye priority: normal severity: normal stage: needs patch status: open title: test_largefile fails on android type: behavior versions: Python 3.9 ___ Python tracker <https://bugs.python.org/issue38850> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38849] test_timestamp_naive fails on android
New submission from Xavier de Gaye : test_timestamp_naive of test_datetime fails on android API 24: generic_x86_64:/data/local/tmp/python $ python -m test -v test_datetime -m test_timestamp_naive == CPython 3.9.0a0 (heads/abifa-dirty:cf805c25e6, Nov 18 2019, 16:40:26) [Clang 8.0.2 (https://android.googlesource.com/toolchain/clang 40173bab62ec7462 == Linux-3.10.0+-x86_64-with-libc little-endian == cwd: /data/local/tmp/python/tmp/test_python_2606 == CPU count: 2 == encodings: locale=UTF-8, FS=utf-8 0:00:00 Run tests sequentially 0:00:00 [1/1] test_datetime test_timestamp_naive (test.datetimetester.TestDateTime_Pure) ... FAIL test_timestamp_naive (test.datetimetester.TestDateTimeTZ_Pure) ... FAIL test_timestamp_naive (test.datetimetester.TestSubclassDateTime_Pure) ... FAIL test_timestamp_naive (test.datetimetester.TestDateTime_Fast) ... FAIL test_timestamp_naive (test.datetimetester.TestDateTimeTZ_Fast) ... FAIL test_timestamp_naive (test.datetimetester.TestSubclassDateTime_Fast) ... FAIL == FAIL: test_timestamp_naive (test.datetimetester.TestDateTime_Pure) -- Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/test/support/__init__.py", line 1833, in inner return func(*args, **kwds) File "/data/local/tmp/python/lib/python3.9/test/datetimetester.py", line 2367, in test_timestamp_n aive self.assertEqual(t.timestamp(), 18000.0) AssertionError: 14400.0 != 18000.0 == FAIL: test_timestamp_naive (test.datetimetester.TestDateTimeTZ_Pure) -- Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/test/support/__init__.py", line 1833, in inner return func(*args, **kwds) File "/data/local/tmp/python/lib/python3.9/test/datetimetester.py", line 2367, in test_timestamp_n aive self.assertEqual(t.timestamp(), 18000.0) AssertionError: 14400.0 != 18000.0 == FAIL: test_timestamp_naive (test.datetimetester.TestSubclassDateTime_Pure) -- Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/test/support/__init__.py", line 1833, in inner return func(*args, **kwds) File "/data/local/tmp/python/lib/python3.9/test/datetimetester.py", line 2367, in test_timestamp_n aive self.assertEqual(t.timestamp(), 18000.0) AssertionError: 14400.0 != 18000.0 == FAIL: test_timestamp_naive (test.datetimetester.TestDateTime_Fast) -- Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/test/support/__init__.py", line 1833, in inner return func(*args, **kwds) File "/data/local/tmp/python/lib/python3.9/test/datetimetester.py", line 2367, in test_timestamp_n aive self.assertEqual(t.timestamp(), 18000.0) AssertionError: 14400.0 != 18000.0 == FAIL: test_timestamp_naive (test.datetimetester.TestDateTimeTZ_Fast) -- Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/test/support/__init__.py", line 1833, in inner return func(*args, **kwds) File "/data/local/tmp/python/lib/python3.9/test/datetimetester.py", line 2367, in test_timestamp_naive self.assertEqual(t.timestamp(), 18000.0) AssertionError: 14400.0 != 18000.0 == FAIL: test_timestamp_naive (test.datetimetester.TestSubclassDateTime_Fast) -- Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/test/support/__init__.py", line 1833, in inner return func(*args, **kwds) File "/data/local/tmp/python/lib/python3.9/test/datetimetester.py", line 2367, in test_timestamp_naive self.assertEqual(t.timestamp(), 18000.0) AssertionError: 14400.0 != 18000.0 -- Ran 6 tests in 0.026s FAILED (failures=6) test test_datetime failed test_datetime failed == Tests result: FAILURE == 1 test failed: test_datetime Total duration: 331 ms Tests result: FAILURE -- components: Tests messages: 356975 nosy: xdegaye priority: normal severity: normal stage: needs patch status: open title: test_timestamp_naive fails on android type: be
[issue25172] Unix-only crypt should not be present on Windows.
Change by Xavier de Gaye : -- resolution: fixed -> stage: resolved -> needs patch status: closed -> open ___ Python tracker <https://bugs.python.org/issue25172> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38848] test_compileall fails when the platform lacks a functional sem_open()
New submission from Xavier de Gaye : See also the related issues: #32126: [asyncio] test failure when the platform lacks a functional sem_open() #28668: instanciation of multiprocessing.Queue raises ImportError in test_logging The test failure on android API 24: generic_x86_64:/data/local/tmp/python $ python -m test -v test_compileall -m test_workers == CPython 3.9.0a0 (heads/abifa-dirty:cf805c25e6, Nov 18 2019, 16:40:26) [Clang 8.0.2 (https://andro id.googlesource.com/toolchain/clang 40173bab62ec7462 == Linux-3.10.0+-x86_64-with-libc little-endian == cwd: /data/local/tmp/python/tmp/test_python_2579 == CPU count: 2 == encodings: locale=UTF-8, FS=utf-8 0:00:00 Run tests sequentially 0:00:00 [1/1] test_compileall test_workers (test.test_compileall.CommandLineTestsNoSourceEpoch) ... FAIL test_workers (test.test_compileall.CommandLineTestsWithSourceEpoch) ... FAIL == FAIL: test_workers (test.test_compileall.CommandLineTestsNoSourceEpoch) -- Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/test/test_py_compile.py", line 20, in wrapper return fxn(*args, **kwargs) File "/data/local/tmp/python/lib/python3.9/test/test_compileall.py", line 707, in test_workersself.assertRunOK(self.directory, '-j', '0') File "/data/local/tmp/python/lib/python3.9/test/test_compileall.py", line 397, in assertRunOK rc, out, err = script_helper.assert_python_ok( File "/data/local/tmp/python/lib/python3.9/test/support/script_helper.py", line 157, in assert_pyt hon_ok return _assert_python(True, *args, **env_vars) File "/data/local/tmp/python/lib/python3.9/test/support/script_helper.py", line 143, in _assert_py thon res.fail(cmd_line) File "/data/local/tmp/python/lib/python3.9/test/support/script_helper.py", line 70, in fail raise AssertionError("Process return code is %d\n" AssertionError: Process return code is 1 command line: ['/data/local/tmp/python/bin/python', '-X', 'faulthandler', '-I', '-S', '-m', 'compile all', '/data/local/tmp/python/tmp/tmpc1hy_667', '-j', '0'] stdout: --- --- stderr: --- Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/multiprocessing/synchronize.py", line 28, in from _multiprocessing import SemLock, sem_unlink ImportError: cannot import name 'SemLock' from '_multiprocessing' (/data/local/tmp/python/lib/python 3.9/lib-dynload/_multiprocessing.cpython-39d.so) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/runpy.py", line 192, in _run_module_as_main return _run_code(code, main_globals, None, File "/data/local/tmp/python/lib/python3.9/runpy.py", line 85, in _run_code exec(code, run_globals) File "/data/local/tmp/python/lib/python3.9/compileall.py", line 425, in exit_status = int(not main()) File "/data/local/tmp/python/lib/python3.9/compileall.py", line 403, in main if not compile_dir(dest, maxlevels, args.ddir, File "/data/local/tmp/python/lib/python3.9/compileall.py", line 91, in compile_dir with ProcessPoolExecutor(max_workers=workers) as executor: File "/data/local/tmp/python/lib/python3.9/concurrent/futures/process.py", line 555, in __init__ self._call_queue = _SafeQueue( File "/data/local/tmp/python/lib/python3.9/concurrent/futures/process.py", line 165, in __init__ super().__init__(max_size, ctx=ctx) File "/data/local/tmp/python/lib/python3.9/multiprocessing/queues.py", line 42, in __init__ self._rlock = ctx.Lock() File "/data/local/tmp/python/lib/python3.9/multiprocessing/context.py", line 67, in Lock from .synchronize import Lock File "/data/local/tmp/python/lib/python3.9/multiprocessing/synchronize.py", line 30, in raise ImportError("This platform lacks a functioning sem_open" + ImportError: This platform lacks a functioning sem_open implementation, therefore, the required sync hronization primitives needed will not function, see issue 3770. --- == FAIL: test_workers (test.test_compileall.CommandLineTestsWithSourceEpoch) == [38/374] FAIL: test_workers (test.test_compileall.CommandLineTestsWithSourceEpoch) -- Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/test/test_py_compile.py", line 30, in wrapper return fxn(*args, **kwargs) File "/data/local/tmp/python/lib/python3.9/test/test_compileall.py", line 707,
[issue38841] [asyncio] bind() on a unix socket raises PermissionError on Android for a non-root user
New submission from Xavier de Gaye : This is the same kind of issue as reported in #28684. python -m test -v test_asyncio -m test_create_datagram_endpoint_existing_sock_unix == CPython 3.9.0a0 (heads/abifa-dirty:cf805c25e6, Nov 18 2019, 16:40:26) [Clang 8.0.2 (https://andro id.googlesource.com/toolchain/clang 40173bab62ec7462 == Linux-3.10.0+-x86_64-with-libc little-endian == cwd: /data/local/tmp/python/tmp/test_python_6046 == CPU count: 2 == encodings: locale=UTF-8, FS=utf-8 0:00:00 Run tests sequentially test_create_datagram_endpoint_existing_sock_unix (test.test_asyncio.test_base_events.BaseEventLoopWithSelectorTests) ... ERROR /data/local/tmp/python/lib/python3.9/unittest/case.py:687: ResourceWarning: unclosed outcome.errors.clear() ResourceWarning: Enable tracemalloc to get the object allocation traceback == ERROR: test_create_datagram_endpoint_existing_sock_unix (test.test_asyncio.test_base_events.BaseEven tLoopWithSelectorTests) -- Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/test/test_asyncio/test_base_events.py", line 1707, in t est_create_datagram_endpoint_existing_sock_unix sock.bind(path) PermissionError: [Errno 13] Permission denied -- Ran 1 test in 0.014s FAILED (errors=1) test test_asyncio failed test_asyncio failed == Tests result: FAILURE == 1 test failed: test_asyncio Total duration: 542 ms Tests result: FAILURE -- components: asyncio messages: 356924 nosy: asvetlov, xdegaye, yselivanov priority: normal severity: normal stage: needs patch status: open title: [asyncio] bind() on a unix socket raises PermissionError on Android for a non-root user type: behavior versions: Python 3.9 ___ Python tracker <https://bugs.python.org/issue38841> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue38840] incorrect __all__ list in multiprocessing.managers module
New submission from Xavier de Gaye : On android which is a platform that is missing the shared memory implementation, test___all__ fails because 'multiprocessing.managers' has no attribute 'SharedMemoryManager' which is listed in __all__. 2|generic_x86_64:/data/local/tmp/python $ python Python 3.9.0a0 (heads/abifa-dirty:cf805c25e6, Nov 18 2019, 16:40:26) [Clang 8.0.2 (https://android.googlesource.com/toolchain/clang 40173bab62ec7462 on linux Type "help", "copyright", "credits" or "license" for more information. >>> import multiprocessing.shared_memory Traceback (most recent call last): File "", line 1, in File "/data/local/tmp/python/lib/python3.9/multiprocessing/shared_memory.py", line 22, in import _posixshmem ModuleNotFoundError: No module named '_posixshmem' >>> 2|generic_x86_64:/data/local/tmp/python $ python -m test test___all__ 0:00:00 Run tests sequentially 0:00:00 [1/1] test___all__ test test___all__ failed -- Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/test/test___all__.py", line 38, in check_all exec("from %s import *" % modname, names) AttributeError: module 'multiprocessing.managers' has no attribute 'SharedMemoryManager' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/test/test___all__.py", line 41, in check_all self.fail("__all__ failure in {}: {}: {}".format( AssertionError: __all__ failure in multiprocessing.managers: AttributeError: module 'multiprocessing.managers' has no attribute 'SharedMemoryManager' test___all__ failed == Tests result: FAILURE == 1 test failed: test___all__ Total duration: 1.8 sec Tests result: FAILURE -- components: Library (Lib) messages: 356922 nosy: xdegaye priority: normal severity: normal stage: needs patch status: open title: incorrect __all__ list in multiprocessing.managers module type: behavior versions: Python 3.9 ___ Python tracker <https://bugs.python.org/issue38840> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue25172] Unix-only crypt should not be present on Windows.
Xavier de Gaye added the comment: test_crypt fails on android following last changes made at 243a73deee4ac61fe06602b7ed56b6df01e19f27. The android libc does not have a crypt() function and the _crypt module is not built. generic_x86_64:/data/local/tmp/python $ python Python 3.9.0a0 (heads/abifa-dirty:cf805c25e6, Nov 18 2019, 16:40:26) [Clang 8.0.2 (https://android.googlesource.com/toolchain/clang 40173bab62ec7462 on linux Type "help", "copyright", "credits" or "license" for more information. >>> import crypt Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/crypt.py", line 6, in import _crypt ModuleNotFoundError: No module named '_crypt' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "", line 1, in File "/data/local/tmp/python/lib/python3.9/crypt.py", line 11, in raise ImportError("The required _crypt module was not built as part of CPython") ImportError: The required _crypt module was not built as part of CPython >>> generic_x86_64:/data/local/tmp/python $ python -m test -v test_crypt == CPython 3.9.0a0 (heads/abifa-dirty:cf805c25e6, Nov 18 2019, 16:40:26) [Clang 8.0.2 (https://andro id.googlesource.com/toolchain/clang 40173bab62ec7462 == Linux-3.10.0+-x86_64-with-libc little-endian == cwd: /data/local/tmp/python/tmp/test_python_3523 == CPU count: 2 == encodings: locale=UTF-8, FS=utf-8 0:00:00 Run tests sequentially 0:00:00 [1/1] test_crypt test_blowfish_rounds (test.test_crypt.CryptTestCase) ... skipped 'Not supported on Windows' test_crypt (test.test_crypt.CryptTestCase) ... skipped 'Not supported on Windows' test_invalid_rounds (test.test_crypt.CryptTestCase) ... skipped 'Not supported on Windows' test_methods (test.test_crypt.CryptTestCase) ... skipped 'Not supported on Windows' test_salt (test.test_crypt.CryptTestCase) ... skipped 'Not supported on Windows' test_saltedcrypt (test.test_crypt.CryptTestCase) ... skipped 'Not supported on Windows' test_sha2_rounds (test.test_crypt.CryptTestCase) ... skipped 'Not supported on Windows' test_failure_only_for_windows (test.test_crypt.TestWhyCryptDidNotImport) ... FAIL test_import_failure_message (test.test_crypt.TestWhyCryptDidNotImport) ... FAIL == FAIL: test_failure_only_for_windows (test.test_crypt.TestWhyCryptDidNotImport) -- Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/test/test_crypt.py", line 16, in test_failure_only_for_ windows self.assertEqual(sys.platform, 'win32') AssertionError: 'linux' != 'win32' - linux + win32 == FAIL: test_import_failure_message (test.test_crypt.TestWhyCryptDidNotImport) -- Traceback (most recent call last): File "/data/local/tmp/python/lib/python3.9/test/test_crypt.py", line 19, in test_import_failure_message self.assertIn('not supported', IMPORT_ERROR) AssertionError: 'not supported' not found in 'The required _crypt module was not built as part of CPython' -- Ran 9 tests in 0.008s FAILED (failures=2, skipped=7) test test_crypt failed test_crypt failed == Tests result: FAILURE == 1 test failed: test_crypt Total duration: 165 ms Tests result: FAILURE -- nosy: +xdegaye ___ Python tracker <https://bugs.python.org/issue25172> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue28562] test_asyncio fails on Android upon calling getaddrinfo()
Xavier de Gaye added the comment: According to my last post on this issue 2 years ago, this test "does not fail on android-24-x86_64". This means that it does not fail on API level 24. IMO the issue may be closed. -- ___ Python tracker <https://bugs.python.org/issue28562> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue37011] pdb: restore original tracing function instead of sys.settrace(None)
Xavier de Gaye added the comment: The main goal of test coverage is to verify that the tests cover the code that is being tested, it is not to get '100 %' printed. Measuring the coverage of the tests themselves is entirely another matter and not very useful. Since it is not possible to measure the coverage of code executed by a trace function, attempting to increase the measure of the coverage of the tests themselves that test pdb, just for the sake of it, does not justify the added complexity and possible source of confusion. -1 for this change. -- ___ Python tracker <https://bugs.python.org/issue37011> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue37011] pdb: restore original tracing function instead of sys.settrace(None)
Xavier de Gaye added the comment: > Is getting accurate coverage reports not enough? But it does not achieve that goal, does it ? -- ___ Python tracker <https://bugs.python.org/issue37011> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue37011] pdb: restore original tracing function instead of sys.settrace(None)
Xavier de Gaye added the comment: > Would it work to store it on the class then (once)? A motivation for this change should be provided first: the incorrect behavior it is trying to fix or the enhancement it is providing. -- ___ Python tracker <https://bugs.python.org/issue37011> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue37011] pdb: restore original tracing function instead of sys.settrace(None)
Xavier de Gaye added the comment: > While typically pdb is not used in tests, it is just good practice, given > that there can only be a single trace function. IMO invoking "good practice" is not sufficient to motivate such a change. The proposed change is not backward compatible. A common use case for pdb is to insert a so-called hard breakpoint (import pdb; pdb.set_trace()) line in existing code. In that case the proposed change builds an implicit stack of trace functions that is increased each time the interpreter executes this hard breakpoint (when set in a loop or in a function invoked multiple times for example). When the user hits the 'continue' pdb command, then pdb stops at the next function call if the hard breakpoint has been hit more than once instead of leaving the pdb session for good as it does currently. -- nosy: +xdegaye ___ Python tracker <https://bugs.python.org/issue37011> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue36954] test_recursive_repr breaks tracing in test_xml_etree
Xavier de Gaye added the comment: @gphemsley Can you please provide the output of running test_xml_etree with tracing. -- nosy: +xdegaye ___ Python tracker <https://bugs.python.org/issue36954> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21536] extension built with a shared python cannot be loaded with a static python
Xavier de Gaye added the comment: FWIW I checked the Android build after those last changes. -- ___ Python tracker <https://bugs.python.org/issue21536> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue28971] nntplib is broken when responses are longer than _MAXLINE
Xavier de Gaye added the comment: What do you mean ? What is "this" ? -- ___ Python tracker <https://bugs.python.org/issue28971> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue36758] configured libdir not correctly passed to Python executable
Xavier de Gaye added the comment: I can reproduce the problem. The Makefile uses LIBDIR as set by configure to install the libraries and this is not consistent with Modules/getpath.c that finds the locations of the libraries (see the detailed comments at the top of the source file) without searching for LIBDIR. The work around is to use PYTHONHOME. Michael is right and ./configure should at least issue a warning when --libdir is used. -- nosy: +xdegaye ___ Python tracker <https://bugs.python.org/issue36758> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue35952] test.pythoninfo prints a stack trace and exits with 1 when the compiler does not exist
Xavier de Gaye added the comment: Attached pythoninfo_api_24.txt, the output of pythoninfo for Android API 24 with PR 13007. -- nosy: +vstinner Added file: https://bugs.python.org/file48290/pythoninfo_api_24.txt ___ Python tracker <https://bugs.python.org/issue35952> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue35952] test.pythoninfo prints a stack trace and exits with 1 when the compiler does not exist
Change by Xavier de Gaye : -- keywords: +patch pull_requests: +12928 stage: -> patch review ___ Python tracker <https://bugs.python.org/issue35952> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue36747] Tools/scripts/setup.py is missing
Change by Xavier de Gaye : -- keywords: +patch pull_requests: +12924 stage: -> patch review ___ Python tracker <https://bugs.python.org/issue36747> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue36747] Tools/scripts/setup.py is missing
Xavier de Gaye added the comment: Agreed. -- ___ Python tracker <https://bugs.python.org/issue36747> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue36747] Tools/scripts/setup.py is missing
New submission from Xavier de Gaye : The 'scriptsinstall' Makefile target runs the $(srcdir)/Tools/scripts/setup.py script that does not exist anymore. It has been removed by changeset d3f467ac7441a100eb26412424c2dd96ec3ceb67 (found after running 'cd Tools/scripts/ && git log --diff-filter=D --summary .'). Its content was then: from distutils.core import setup if __name__ == '__main__': setup( scripts=[ 'byteyears.py', 'checkpyc.py', 'copytime.py', 'crlf.py', 'dutree.py', 'ftpmirror.py', 'h2py.py', 'lfcr.py', '../i18n/pygettext.py', 'logmerge.py', '../../Lib/tabnanny.py', '../../Lib/timeit.py', 'untabify.py', ], ) -- components: Build messages: 341035 nosy: xdegaye priority: normal severity: normal status: open title: Tools/scripts/setup.py is missing type: behavior versions: Python 3.8 ___ Python tracker <https://bugs.python.org/issue36747> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21536] extension built with a shared python cannot be loaded with a static python
Xavier de Gaye added the comment: PR 12989 fixes the Android issue and has been checked on the Android emulator at API 24. Python is cross-compiled with '--enable-shared' and the python-config scripts give the expected result: generic_x86_64:/data/local/tmp/python/bin $ python -c "from sysconfig import get_config_var; print(get_config_var('Py_ENABLE_SHARED'))" 1 generic_x86_64:/data/local/tmp/python/bin $ sh python-config --libs -lpython3.8d -ldl -lm -lm generic_x86_64:/data/local/tmp/python/bin $ python python-config.py --libs -lpython3.8d -ldl -lm -lm -- ___ Python tracker <https://bugs.python.org/issue21536> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21536] extension built with a shared python cannot be loaded with a static python
Change by Xavier de Gaye : -- pull_requests: +12912 stage: resolved -> patch review ___ Python tracker <https://bugs.python.org/issue21536> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21536] extension built with a shared python cannot be loaded with a static python
Xavier de Gaye added the comment: Thanks for fixing the regression Victor. Here is another potential problem. On Android API 24 built with NDK r19, symbol resolution fails in the _socket shared library after changeset 8c3ecc6bacc8d0cd534f2b5b53ed962dd1368c7b when python is built with '--enable-shared': generic_x86_64:/data/local/tmp/python $ python -c "import _socket" Traceback (most recent call last): File "", line 1, in ImportError: dlopen failed: cannot locate symbol "PyByteArray_Type" referenced by "/data/local/tmp/python/lib/python3.8/lib-dynload/_socket.cpython-38d.so"... This does not happen when the build is configured without '--enable-shared'. An NDK issue [1] reports the same problem and dimitry in this issue explains that on Android >= 23 the shared library must be linked against the shared library where the symbol is defined. Dimitry says that the Android loader was fixed in M (i.e. API 23) and it must refer to the changes listed in the "RTLD_LOCAL (Available in API level >= 23)" section of "Android changes for NDK developers" [2]. [1] https://github.com/android-ndk/ndk/issues/201 [2] https://android.googlesource.com/platform/bionic/+/android-n-mr2-preview-1/android-changes-for-ndk-developers.md -- ___ Python tracker <https://bugs.python.org/issue21536> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue21536] extension built with a shared python cannot be loaded with a static python
Xavier de Gaye added the comment: Please revert the change in Makefile.pre.in made by changeset 8c3ecc6bacc8d0cd534f2b5b53ed962dd1368c7b as it breaks builds made out of the source tree (OST). The error message is: make: *** No rule to make target '/path_to_build_dir/Misc/python-config.sh', needed by 'python-config'. Stop. When the source tree has been already built at least once and 'make clean' is run in the source tree (as required for building OST), the OST build does not fail but incorrectly uses the stale python-config.sh from the source tree as 'make clean' does not remove Misc/python-config.sh. -- nosy: +xdegaye ___ Python tracker <https://bugs.python.org/issue21536> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue36680] duplicate method definition in Lib/test/test_importlib/test_util.py
Change by Xavier de Gaye : -- resolution: fixed -> stage: resolved -> status: closed -> open versions: +Python 3.7 ___ Python tracker <https://bugs.python.org/issue36680> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue36681] duplicate method definition in Lib/test/test_logging.py
Change by Xavier de Gaye : -- resolution: fixed -> stage: resolved -> status: closed -> open versions: +Python 3.7 ___ Python tracker <https://bugs.python.org/issue36681> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue16079] list duplicate test names with patchcheck
Change by Xavier de Gaye : -- pull_requests: +12876 ___ Python tracker <https://bugs.python.org/issue16079> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue19119] duplicate test name in Lib/test/test_heapq.py
Change by Xavier de Gaye : -- versions: +Python 3.7 ___ Python tracker <https://bugs.python.org/issue19119> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com