Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 34k
Closed
Labels
3.15new features, bugs and security fixesnew features, bugs and security fixesextension-modulesC modules in the Modules dirC modules in the Modules dirtopic-profilingtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Description
Bug report
Bug description:
./configure --with-pydebug make -j8 ./python -m profiling.sampling run --live -i 1 -d 100000 -a -m test # waiting but not 100% reproducer 
easy way reproducer
diff --git a/Python/ceval_gil.c b/Python/ceval_gil.c index f6ada3892f8..a5b1290ac70 100644 --- a/Python/ceval_gil.c+++ b/Python/ceval_gil.c@@ -409,9 +409,9 @@ take_gil(PyThreadState *tstate) _PyThreadState_HangThread(tstate)} assert(_PyThreadState_CheckConsistency(tstate)); -- tstate->gil_requested = 0; tstate->holds_gil = 1; + for (volatile int _i = 0; _i < 10; _i++){} // Widen window+ tstate->gil_requested = 0; _Py_unset_eval_breaker_bit(tstate, _PY_GIL_DROP_REQUEST_BIT); update_eval_breaker_for_thread(interp, tstate); then its 100% reproduce
./python -m profiling.sampling run --live -i 1 -d 100000 -a -m test the fix:
seems because its remote we can not fix it in ceval_gil.c
and drop the assert way works in my side
diff --git a/Modules/_remote_debugging/threads.c b/Modules/_remote_debugging/threads.c index 99147b01a1b..69a85761562 100644 --- a/Modules/_remote_debugging/threads.c+++ b/Modules/_remote_debugging/threads.c@@ -335,12 +335,9 @@ unwind_stack_for_thread( #endif if (has_gil){status_flags |= THREAD_STATUS_HAS_GIL; + gil_requested = 0; } - // Assert that we never have both HAS_GIL and GIL_REQUESTED set at the same time- // This would indicate a race condition in the GIL state tracking- assert(!(has_gil && gil_requested));- // Check CPU status long pthread_id = GET_MEMBER(long, ts, unwinder->debug_offsets.thread_state.thread_id); CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Linked PRs
Metadata
Metadata
Assignees
Labels
3.15new features, bugs and security fixesnew features, bugs and security fixesextension-modulesC modules in the Modules dirC modules in the Modules dirtopic-profilingtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error