From 3f25e1219334d1f2c5e8a6c8acaf16aee4260a62 Mon Sep 17 00:00:00 2001 From: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Date: Sun, 28 Apr 2024 00:01:08 +0800 Subject: [PATCH 1/4] Fix data race in _PyEval_EvalFrameDefault --- Python/bytecodes.c | 2 ++ Python/generated_cases.c.h | 2 ++ Tools/tsan/suppressions_free_threading.txt | 1 - 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Python/bytecodes.c b/Python/bytecodes.c index fe3d61362e6b02..e71a9179989e23 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -163,7 +163,9 @@ dummy_func( if ((oparg & RESUME_OPARG_LOCATION_MASK) < RESUME_AFTER_YIELD_FROM) { CHECK_EVAL_BREAKER(); } +#if ENABLE_SPECIALIZATION this_instr->op.code = RESUME_CHECK; +#endif } } diff --git a/Python/generated_cases.c.h b/Python/generated_cases.c.h index c27505fde3d9fa..11f5fc7ea9d8f3 100644 --- a/Python/generated_cases.c.h +++ b/Python/generated_cases.c.h @@ -4955,7 +4955,9 @@ if ((oparg & RESUME_OPARG_LOCATION_MASK) < RESUME_AFTER_YIELD_FROM) { CHECK_EVAL_BREAKER(); } + #if ENABLE_SPECIALIZATION this_instr->op.code = RESUME_CHECK; + #endif } DISPATCH(); } diff --git a/Tools/tsan/suppressions_free_threading.txt b/Tools/tsan/suppressions_free_threading.txt index 4b1a2fdf6dd43a..3ba8ad6fd48cd0 100644 --- a/Tools/tsan/suppressions_free_threading.txt +++ b/Tools/tsan/suppressions_free_threading.txt @@ -14,7 +14,6 @@ race:set_allocator_unlocked race:_add_to_weak_set race:_in_weak_set race:_mi_heap_delayed_free_partial -race:_PyEval_EvalFrameDefault race:_PyFunction_SetVersion race:_PyImport_AcquireLock race:_PyImport_ReleaseLock From f0e36131d4dc326ba7d695e962aec63d6b94c65c Mon Sep 17 00:00:00 2001 From: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Date: Sun, 28 Apr 2024 00:23:26 +0800 Subject: [PATCH 2/4] Re-enable supression --- Tools/tsan/suppressions_free_threading.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Tools/tsan/suppressions_free_threading.txt b/Tools/tsan/suppressions_free_threading.txt index 3ba8ad6fd48cd0..4b1a2fdf6dd43a 100644 --- a/Tools/tsan/suppressions_free_threading.txt +++ b/Tools/tsan/suppressions_free_threading.txt @@ -14,6 +14,7 @@ race:set_allocator_unlocked race:_add_to_weak_set race:_in_weak_set race:_mi_heap_delayed_free_partial +race:_PyEval_EvalFrameDefault race:_PyFunction_SetVersion race:_PyImport_AcquireLock race:_PyImport_ReleaseLock From 179a69343e54deba582218cb38e922133726c51a Mon Sep 17 00:00:00 2001 From: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Date: Wed, 1 May 2024 03:46:55 +0800 Subject: [PATCH 3/4] formatting --- Python/bytecodes.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Python/bytecodes.c b/Python/bytecodes.c index 50a608aca927c8..18837aef74d78e 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -163,9 +163,9 @@ dummy_func( if ((oparg & RESUME_OPARG_LOCATION_MASK) < RESUME_AFTER_YIELD_FROM) { CHECK_EVAL_BREAKER(); } -#if ENABLE_SPECIALIZATION + #if ENABLE_SPECIALIZATION FT_ATOMIC_STORE_UINT8_RELAXED(this_instr->op.code, RESUME_CHECK); -#endif + #endif /* ENABLE_SPECIALIZATION */ } } From 0f0f2df065fdd3e8011c1d181bf566c387832211 Mon Sep 17 00:00:00 2001 From: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Date: Wed, 1 May 2024 05:12:20 +0800 Subject: [PATCH 4/4] regen cases --- Python/generated_cases.c.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Python/generated_cases.c.h b/Python/generated_cases.c.h index 987688776f809e..1444f5cdebba4b 100644 --- a/Python/generated_cases.c.h +++ b/Python/generated_cases.c.h @@ -4957,7 +4957,7 @@ } #if ENABLE_SPECIALIZATION FT_ATOMIC_STORE_UINT8_RELAXED(this_instr->op.code, RESUME_CHECK); - #endif + #endif /* ENABLE_SPECIALIZATION */ } DISPATCH(); } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy