New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
test_gdb.test_threads() is specific to _POSIX_THREADS, fail on FreeBSD #80365
Comments
On my FreeBSD VM, _POSIX_THREADS is not defined: sys.thread_info: sys.thread_info(name='pthread', lock='semaphore', version=None) test_gdb fails with: Verify that "py-bt" indicates threads that are waiting for the GIL ... FAIL ====================================================================== Traceback (most recent call last):
File "/usr/home/vstinner/prog/python/master/Lib/test/test_gdb.py", line 826, in test_threads
self.assertIn('Waiting for the GIL', gdb_output)
AssertionError: 'Waiting for the GIL' not found in 'Breakpoint 1 at 0x49e5d0: file Python/bltinmodule.c, line 1203.\n[New LWP 100742 of process 68315]\n[New LWP 100749 of process 68315]\n[New LWP 100751 of process 68315]\n[New LWP 100766 of process 68315]\n\nThread 1 hit Breakpoint 1, builtin_id (self=, v=42) at Python/bltinmodule.c:1203\n1203\t return PyLong_FromVoidPtr(v);\n\nThread 5 (LWP 100766 of process 68315):\nTraceback (most recent call first):\n File "<string>", line 10, in run\n File "/usr/home/vstinner/prog/python/master/Lib/threading.py", line 917, in _bootstrap_inner\n self.run()\n File "/usr/home/vstinner/prog/python/master/Lib/threading.py", line 885, in _bootstrap\n self._bootstrap_inner()\n\nThread 4 (LWP 100751 of process 68315):\nTraceback (most recent call first):\n File "<string>", line 10, in run\n File "/usr/home/vstinner/prog/python/master/Lib/threading.py", line 917, in _bootstrap_inner\n self.run()\n File "/usr/home/vstinner/prog/python/master/Lib/threading.py", line 885, in _bootstrap\n self._bootstrap_inner()\n\nThread 3 (LWP 100749 of process 68315):\nTraceback (most recent call first):\n File "<string>", line 10, in run\n File "/usr/home/vstinner/prog/python/master/Lib/threading.py", line 917, in _bootstrap_inner\n self.run()\n File "/usr/home/vstinner/prog/python/master/Lib/threading.py", line 885, in _bootstrap\n self._bootstrap_inner()\n\nThread 2 (LWP 100742 of process 68315):\nTraceback (most recent call first):\n File "<string>", line 10, in run\n File "/usr/home/vstinner/prog/python/master/Lib/threading.py", line 917, in _bootstrap_inner\n self.run()\n File "/usr/home/vstinner/prog/python/master/Lib/threading.py", line 885, in _bootstrap\n self._bootstrap_inner()\n\nThread 1 (LWP 100559 of process 68315):\nTraceback (most recent call first):\n <built-in method id of module object at remote 0x800bccde8>\n File "<string>", line 18, in <module>\n' => 'Waiting for the GIL' cannot be found in the output, because python-gdb.py failed to detect that a threading is waiting for the GIL. The problem can be found in Tools/gdb/libpython.py: def is_waiting_for_gil(self):
'''Is this frame waiting on the GIL?'''
# This assumes the _POSIX_THREADS version of Python/ceval_gil.h:
name = self._gdbframe.name()
if name:
return 'pthread_cond_timedwait' in name pthread_cond_timedwait() is too close to POSIX threads. We can make this function more portable by checking for 'take_gil' function instead. |
Hi, I would like to try to solve this issue. Does this occur on the latest version of FreeBSD? |
I am running FreeBSD 12. I don't recall the minor version (12.1 maybe?). |
I was able to reproduce this on FreeBSD 12.0. |
So I changed 'pthread_cond_timedwait' to 'take_gil' and this didn't seem to have an effect on the unit test. I installed GDB 8.2 is that the same version you are using? |
Maybe you forgot to run "make" to copy Tools/gdb/libpython.py as python-gdb.py. Anyway, I wrote PR 18873 and I tested manually that it does fix test_gdb on FreeBSD. I tested "GNU gdb (GDB) 8.3.1 [GDB v8.3.1 for FreeBSD]" on FreeBSD 12.1-RELEASE-p2. |
For our future reference/selves, GDB (currently 9.1 w/ python bindings) is now installed on the two FreeBSD buildbot workers |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: