You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
./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);
Bug report
Bug description:
easy way reproducer
then its 100% reproduce
the fix:
seems because its remote we can not fix it in
ceval_gil.cand drop the assert way works in my side
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Linked PRs
profiling.sampling#142331