https://github.com/python/cpython/commit/4162bc133b21ccb06d3589bd69ddb7bb248c58d2
commit: 4162bc133b21ccb06d3589bd69ddb7bb248c58d2
branch: main
author: Sam Gross <colesb...@gmail.com>
committer: colesbury <colesb...@gmail.com>
date: 2025-03-11T10:33:23-04:00
summary:

gh-130396: Fix thread sanitizer crashes on stack overflow tests (gh-130966)

Thread sanitizer will often crash if a test uses more than half the
stack.

files:
M Python/ceval.c

diff --git a/Python/ceval.c b/Python/ceval.c
index a702d296e2247a..f9089d7f11f280 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -392,7 +392,12 @@ _Py_InitializeRecursionLimits(PyThreadState *tstate)
     if (err == 0) {
         uintptr_t base = ((uintptr_t)stack_addr) + guard_size;
         _tstate->c_stack_top = base + stack_size;
+#ifdef _Py_THREAD_SANITIZER
+        // Thread sanitizer crashes if we use a bit more than half the stack.
+        _tstate->c_stack_soft_limit = base + (stack_size / 2);
+#else
         _tstate->c_stack_soft_limit = base + PYOS_STACK_MARGIN_BYTES * 2;
+#endif
         _tstate->c_stack_hard_limit = base + PYOS_STACK_MARGIN_BYTES;
         assert(_tstate->c_stack_soft_limit < here_addr);
         assert(here_addr < _tstate->c_stack_top);

_______________________________________________
Python-checkins mailing list -- python-checkins@python.org
To unsubscribe send an email to python-checkins-le...@python.org
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: arch...@mail-archive.com

Reply via email to