Repository navigation
Unrecoverable stack overflow with infinite recursion on macOS #131543
Description
Activity
- addedtype-crashA hard crash of the interpreter, possibly with a core dumpA hard crash of the interpreter, possibly with a core dump
on Mar 21, 2025 Unable to reproduce with
python3.14.0a6on Linux.- addedinterpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)
on Mar 21, 2025 Hi,
Are the logs from that cloudpickle CI run public?I was unable to reproduce locally with linux either.
The outputs for both runs with cloudpickle CI are linked in the issue description (sorry it is not super explicit indeed)
- changed the title
[-]Unrecoverable stack overflow with infinite recursion on OSX[/-][+]Unrecoverable stack overflow with infinite recursion on macOS[/+]on Mar 21, 2025 I can reproduce the crash using any of the python.org macOS Python 3.14 alphas, as well as the latest python.org and MacPorts-supplied Python 3.13(.2) and 3.12(.9) - I didn't try any earlier versions of them.It might be an issue with release vs debug builds and there certainly have been many instances in the past of different stack limits on different platforms, especially on macOS.Hello,
In the reported case, it does not happen with3.14.0a5on the same platform, so I don't know if it is linked to how it is built (I'm guessing both builds have a similar process).The exact build from the logs:
3.14.0a5 (working): Download from "https://github.com/actions/python-versions/releases/download/3.14.0-alpha.5-13438582588/python-3.14.0-alpha.5-darwin-arm64.tar.gz"
3.14.0a6 (failing): Download from "https://github.com/actions/python-versions/releases/download/3.14.0-alpha.6-13890321974/python-3.14.0-alpha.6-darwin-arm64.tar.gz"My apologies! I somehow totally misread your report. Contrary to what I originally wrote, I cannot reproduce the failure with any of those python.org macOS installers, including 3.14.0a5 and a6. I see that the
actions/python-versionsrepo claims to repackage the python.org installers for macOS but I have no insight into how they might do that or what differences Github CI runners might present that might be a factor here. All I can say is that we have our own Github CI jobs for both Intel and Apple Silicon (ARM). And our python.org release installers are tested on a variety of real machines and VMs of both architectures with various macOS versions but not on a Github runner itself.FWIW: The reproducer in the initial message crashes for me with Python 3.14a6, but only for arm64 and not x86_64 (e.g. fatal error with
arch -arm64 python3.14 repro.pyand no issue witharch -x86_64 python3.14 repro.py). This is with the python.org installer.- added 2 commits that reference this issue
on May 25, 2025 I can reproduce the issue on my M3 Mac running macOS 15.5 with the script from OP and with python.org installer for 3.14.0b1.
Contrary to the comment above this one, the crash happens for me with both native arm64 mode and in x86_64 mode.
Interestingly, though, the crash does not happen with free-threaded version of 3.14.0b1 from python.org installer, nor if I manually compile 3.14.0b1 from source (but I haven't really tried to fully match the build flags, so that might be expected).
As far as I can tell, the problem is that
pthread_getattr_npis not available on macOS, so the stack size is set to hard-coded value of 4 MB:Lines 467 to 469 in 91b4886
_tstate->c_stack_top = _Py_SIZE_ROUND_UP(here_addr, 4096); _tstate->c_stack_soft_limit = _tstate->c_stack_top - Py_C_STACK_SIZE; _tstate->c_stack_hard_limit = _tstate->c_stack_top - (Py_C_STACK_SIZE + PYOS_STACK_MARGIN_BYTES); Lines 355 to 367 in 91b4886
#if defined(__s390x__) # define Py_C_STACK_SIZE 320000 #elif defined(_WIN32) // Don't define Py_C_STACK_SIZE, ask the O/S #elif defined(__ANDROID__) # define Py_C_STACK_SIZE 1200000 #elif defined(__sparc__) # define Py_C_STACK_SIZE 1600000 #elif defined(__hppa__) || defined(__powerpc64__) # define Py_C_STACK_SIZE 2000000 #else # define Py_C_STACK_SIZE 4000000 #endif This is too conservative for macOS, where the python's build script explicitly increases the stack to 16 MB:
Lines 3597 to 3624 in b092705
Darwin/*|iOS/*) LINKFORSHARED="$extra_undefs -framework CoreFoundation" # Issue #18075: the default maximum stack size (8MBytes) is too # small for the default recursion limit. Increase the stack size # to ensure that tests don't crash stack_size="1000000" # 16 MB if test "$with_ubsan" = "yes" then # Undefined behavior sanitizer requires an even deeper stack stack_size="4000000" # 64 MB fi AC_DEFINE_UNQUOTED([THREAD_STACK_SIZE], [0x$stack_size], [Custom thread stack size depending on chosen sanitizer runtimes.]) if test $ac_sys_system = "Darwin"; then LINKFORSHARED="-Wl,-stack_size,$stack_size $LINKFORSHARED" if test "$enable_framework"; then LINKFORSHARED="$LINKFORSHARED "'$(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)' fi LINKFORSHARED="$LINKFORSHARED" elif test $ac_sys_system = "iOS"; then LINKFORSHARED="-Wl,-stack_size,$stack_size $LINKFORSHARED "'$(PYTHONFRAMEWORKDIR)/$(PYTHONFRAMEWORK)' fi ;; So the hard-coded stack size (
Py_C_STACK_SIZE) should be raised for macOS, or even better, the actual stack size should be obtained using the macOS-specificpthread_get_stackaddr_np()andpthread_get_stacksize_np()functions.
Some additional debugging info...
For testing, I've extended the OP test script with recursion level counter and a manual stack pointer tracking:
import ctypes import ctypes.util # Obtain stack address and stack size as reported by non-portable pthread functions: libc = ctypes.CDLL(ctypes.util.find_library('c')) libc.pthread_self.restype = ctypes.c_void_p libc.pthread_get_stackaddr_np.argtypes = [ctypes.c_void_p] libc.pthread_get_stackaddr_np.restype = ctypes.c_void_p libc.pthread_get_stacksize_np.argtypes = [ctypes.c_void_p] libc.pthread_get_stacksize_np.restype = ctypes.c_ulonglong this_thread = libc.pthread_self() stack_address = libc.pthread_get_stackaddr_np(this_thread) stack_size = libc.pthread_get_stacksize_np(this_thread) print(f"Stack address: {stack_address} = 0x{stack_address:X}") print(f"Stack size: {stack_size} = {stack_size / 1024.0} kB = {stack_size / 1024**2} MB") # Helper for tracking stack pointer location splib = ctypes.CDLL('./stackpointer.dylib') splib.get_machine_stack_pointer.restype = ctypes.c_void_p stack_pointer = splib.get_machine_stack_pointer() print(f"Stack pointer: 0x{stack_pointer:X}, depth: {(stack_address - stack_pointer)/1024:.2f} kB") # Recursion limit test counter = 0 class A: def __getattribute__(self, name): global counter counter += 1 stack_pointer = splib.get_machine_stack_pointer() print(f"Recursion level: {counter}, stack pointer: 0x{stack_pointer:X}, depth: {(stack_address - stack_pointer)/1024:.2f} kB") return getattr(self, name) a = A() print("Testing Recursion Limit") try: a.test except RecursionError: print(f"Recursion Limit ok (reached level {counter})")
with the corresponding utility shared library to track the stack pointer:
// stackpointer.c // // gcc -shared -fpic -o stackpointer.dylib stackpointer.c // // import ctypes // sp = ctypes.CDLL('./stackpointer.dylib') // address = sp.get_machine_stack_pointer() #include <stdint.h> uintptr_t get_machine_stack_pointer(void) { return (uintptr_t)__builtin_frame_address(0); }
Running with python.org build of 3.14.0b1:
Output
% python3.14 repro.py Stack address: 6163398656 = 0x16F5E0000 Stack size: 16777216 = 16384.0 kB = 16.0 MB Stack pointer: 0x16F5D7B20, depth: 33.22 kB Testing Recursion Limit Recursion level: 1, stack pointer: 0x16F5D0D60, depth: 60.66 kB Recursion level: 2, stack pointer: 0x16F5C9F70, depth: 88.14 kB Recursion level: 3, stack pointer: 0x16F5C3180, depth: 115.62 kB Recursion level: 4, stack pointer: 0x16F5BC390, depth: 143.11 kB Recursion level: 5, stack pointer: 0x16F5B55A0, depth: 170.59 kB Recursion level: 6, stack pointer: 0x16F5AE7B0, depth: 198.08 kB Recursion level: 7, stack pointer: 0x16F5A79C0, depth: 225.56 kB Recursion level: 8, stack pointer: 0x16F5A0BD0, depth: 253.05 kB Recursion level: 9, stack pointer: 0x16F599DE0, depth: 280.53 kB Recursion level: 10, stack pointer: 0x16F592FF0, depth: 308.02 kB Recursion level: 11, stack pointer: 0x16F58C200, depth: 335.50 kB Recursion level: 12, stack pointer: 0x16F585410, depth: 362.98 kB Recursion level: 13, stack pointer: 0x16F57E620, depth: 390.47 kB Recursion level: 14, stack pointer: 0x16F577830, depth: 417.95 kB Recursion level: 15, stack pointer: 0x16F570A40, depth: 445.44 kB Recursion level: 16, stack pointer: 0x16F569C50, depth: 472.92 kB Recursion level: 17, stack pointer: 0x16F562E60, depth: 500.41 kB Recursion level: 18, stack pointer: 0x16F55C070, depth: 527.89 kB Recursion level: 19, stack pointer: 0x16F555280, depth: 555.38 kB Recursion level: 20, stack pointer: 0x16F54E490, depth: 582.86 kB Recursion level: 21, stack pointer: 0x16F5476A0, depth: 610.34 kB Recursion level: 22, stack pointer: 0x16F5408B0, depth: 637.83 kB Recursion level: 23, stack pointer: 0x16F539AC0, depth: 665.31 kB Recursion level: 24, stack pointer: 0x16F532CD0, depth: 692.80 kB Recursion level: 25, stack pointer: 0x16F52BEE0, depth: 720.28 kB Recursion level: 26, stack pointer: 0x16F5250F0, depth: 747.77 kB Recursion level: 27, stack pointer: 0x16F51E300, depth: 775.25 kB Recursion level: 28, stack pointer: 0x16F517510, depth: 802.73 kB Recursion level: 29, stack pointer: 0x16F510720, depth: 830.22 kB Recursion level: 30, stack pointer: 0x16F509930, depth: 857.70 kB Recursion level: 31, stack pointer: 0x16F502B40, depth: 885.19 kB Recursion level: 32, stack pointer: 0x16F4FBD50, depth: 912.67 kB Recursion level: 33, stack pointer: 0x16F4F4F60, depth: 940.16 kB Recursion level: 34, stack pointer: 0x16F4EE170, depth: 967.64 kB Recursion level: 35, stack pointer: 0x16F4E7380, depth: 995.12 kB Recursion level: 36, stack pointer: 0x16F4E0590, depth: 1022.61 kB Recursion level: 37, stack pointer: 0x16F4D97A0, depth: 1050.09 kB Recursion level: 38, stack pointer: 0x16F4D29B0, depth: 1077.58 kB Recursion level: 39, stack pointer: 0x16F4CBBC0, depth: 1105.06 kB Recursion level: 40, stack pointer: 0x16F4C4DD0, depth: 1132.55 kB Recursion level: 41, stack pointer: 0x16F4BDFE0, depth: 1160.03 kB Recursion level: 42, stack pointer: 0x16F4B71F0, depth: 1187.52 kB Recursion level: 43, stack pointer: 0x16F4B0400, depth: 1215.00 kB Recursion level: 44, stack pointer: 0x16F4A9610, depth: 1242.48 kB Recursion level: 45, stack pointer: 0x16F4A2820, depth: 1269.97 kB Recursion level: 46, stack pointer: 0x16F49BA30, depth: 1297.45 kB Recursion level: 47, stack pointer: 0x16F494C40, depth: 1324.94 kB Recursion level: 48, stack pointer: 0x16F48DE50, depth: 1352.42 kB Recursion level: 49, stack pointer: 0x16F487060, depth: 1379.91 kB Recursion level: 50, stack pointer: 0x16F480270, depth: 1407.39 kB Recursion level: 51, stack pointer: 0x16F479480, depth: 1434.88 kB Recursion level: 52, stack pointer: 0x16F472690, depth: 1462.36 kB Recursion level: 53, stack pointer: 0x16F46B8A0, depth: 1489.84 kB Recursion level: 54, stack pointer: 0x16F464AB0, depth: 1517.33 kB Recursion level: 55, stack pointer: 0x16F45DCC0, depth: 1544.81 kB Recursion level: 56, stack pointer: 0x16F456ED0, depth: 1572.30 kB Recursion level: 57, stack pointer: 0x16F4500E0, depth: 1599.78 kB Recursion level: 58, stack pointer: 0x16F4492F0, depth: 1627.27 kB Recursion level: 59, stack pointer: 0x16F442500, depth: 1654.75 kB Recursion level: 60, stack pointer: 0x16F43B710, depth: 1682.23 kB Recursion level: 61, stack pointer: 0x16F434920, depth: 1709.72 kB Recursion level: 62, stack pointer: 0x16F42DB30, depth: 1737.20 kB Recursion level: 63, stack pointer: 0x16F426D40, depth: 1764.69 kB Recursion level: 64, stack pointer: 0x16F41FF50, depth: 1792.17 kB Recursion level: 65, stack pointer: 0x16F419160, depth: 1819.66 kB Recursion level: 66, stack pointer: 0x16F412370, depth: 1847.14 kB Recursion level: 67, stack pointer: 0x16F40B580, depth: 1874.62 kB Recursion level: 68, stack pointer: 0x16F404790, depth: 1902.11 kB Recursion level: 69, stack pointer: 0x16F3FD9A0, depth: 1929.59 kB Recursion level: 70, stack pointer: 0x16F3F6BB0, depth: 1957.08 kB Recursion level: 71, stack pointer: 0x16F3EFDC0, depth: 1984.56 kB Recursion level: 72, stack pointer: 0x16F3E8FD0, depth: 2012.05 kB Recursion level: 73, stack pointer: 0x16F3E21E0, depth: 2039.53 kB Recursion level: 74, stack pointer: 0x16F3DB3F0, depth: 2067.02 kB Recursion level: 75, stack pointer: 0x16F3D4600, depth: 2094.50 kB Recursion level: 76, stack pointer: 0x16F3CD810, depth: 2121.98 kB Recursion level: 77, stack pointer: 0x16F3C6A20, depth: 2149.47 kB Recursion level: 78, stack pointer: 0x16F3BFC30, depth: 2176.95 kB Recursion level: 79, stack pointer: 0x16F3B8E40, depth: 2204.44 kB Recursion level: 80, stack pointer: 0x16F3B2050, depth: 2231.92 kB Recursion level: 81, stack pointer: 0x16F3AB260, depth: 2259.41 kB Recursion level: 82, stack pointer: 0x16F3A4470, depth: 2286.89 kB Recursion level: 83, stack pointer: 0x16F39D680, depth: 2314.38 kB Recursion level: 84, stack pointer: 0x16F396890, depth: 2341.86 kB Recursion level: 85, stack pointer: 0x16F38FAA0, depth: 2369.34 kB Recursion level: 86, stack pointer: 0x16F388CB0, depth: 2396.83 kB Recursion level: 87, stack pointer: 0x16F381EC0, depth: 2424.31 kB Recursion level: 88, stack pointer: 0x16F37B0D0, depth: 2451.80 kB Recursion level: 89, stack pointer: 0x16F3742E0, depth: 2479.28 kB Recursion level: 90, stack pointer: 0x16F36D4F0, depth: 2506.77 kB Recursion level: 91, stack pointer: 0x16F366700, depth: 2534.25 kB Recursion level: 92, stack pointer: 0x16F35F910, depth: 2561.73 kB Recursion level: 93, stack pointer: 0x16F358B20, depth: 2589.22 kB Recursion level: 94, stack pointer: 0x16F351D30, depth: 2616.70 kB Recursion level: 95, stack pointer: 0x16F34AF40, depth: 2644.19 kB Recursion level: 96, stack pointer: 0x16F344150, depth: 2671.67 kB Recursion level: 97, stack pointer: 0x16F33D360, depth: 2699.16 kB Recursion level: 98, stack pointer: 0x16F336570, depth: 2726.64 kB Recursion level: 99, stack pointer: 0x16F32F780, depth: 2754.12 kB Recursion level: 100, stack pointer: 0x16F328990, depth: 2781.61 kB Recursion level: 101, stack pointer: 0x16F321BA0, depth: 2809.09 kB Recursion level: 102, stack pointer: 0x16F31ADB0, depth: 2836.58 kB Recursion level: 103, stack pointer: 0x16F313FC0, depth: 2864.06 kB Recursion level: 104, stack pointer: 0x16F30D1D0, depth: 2891.55 kB Recursion level: 105, stack pointer: 0x16F3063E0, depth: 2919.03 kB Recursion level: 106, stack pointer: 0x16F2FF5F0, depth: 2946.52 kB Recursion level: 107, stack pointer: 0x16F2F8800, depth: 2974.00 kB Recursion level: 108, stack pointer: 0x16F2F1A10, depth: 3001.48 kB Recursion level: 109, stack pointer: 0x16F2EAC20, depth: 3028.97 kB Recursion level: 110, stack pointer: 0x16F2E3E30, depth: 3056.45 kB Recursion level: 111, stack pointer: 0x16F2DD040, depth: 3083.94 kB Recursion level: 112, stack pointer: 0x16F2D6250, depth: 3111.42 kB Recursion level: 113, stack pointer: 0x16F2CF460, depth: 3138.91 kB Recursion level: 114, stack pointer: 0x16F2C8670, depth: 3166.39 kB Recursion level: 115, stack pointer: 0x16F2C1880, depth: 3193.88 kB Recursion level: 116, stack pointer: 0x16F2BAA90, depth: 3221.36 kB Recursion level: 117, stack pointer: 0x16F2B3CA0, depth: 3248.84 kB Recursion level: 118, stack pointer: 0x16F2ACEB0, depth: 3276.33 kB Recursion level: 119, stack pointer: 0x16F2A60C0, depth: 3303.81 kB Recursion level: 120, stack pointer: 0x16F29F2D0, depth: 3331.30 kB Recursion level: 121, stack pointer: 0x16F2984E0, depth: 3358.78 kB Recursion level: 122, stack pointer: 0x16F2916F0, depth: 3386.27 kB Recursion level: 123, stack pointer: 0x16F28A900, depth: 3413.75 kB Recursion level: 124, stack pointer: 0x16F283B10, depth: 3441.23 kB Recursion level: 125, stack pointer: 0x16F27CD20, depth: 3468.72 kB Recursion level: 126, stack pointer: 0x16F275F30, depth: 3496.20 kB Recursion level: 127, stack pointer: 0x16F26F140, depth: 3523.69 kB Recursion level: 128, stack pointer: 0x16F268350, depth: 3551.17 kB Recursion level: 129, stack pointer: 0x16F261560, depth: 3578.66 kB Recursion level: 130, stack pointer: 0x16F25A770, depth: 3606.14 kB Recursion level: 131, stack pointer: 0x16F253980, depth: 3633.62 kB Recursion level: 132, stack pointer: 0x16F24CB90, depth: 3661.11 kB Recursion level: 133, stack pointer: 0x16F245DA0, depth: 3688.59 kB Recursion level: 134, stack pointer: 0x16F23EFB0, depth: 3716.08 kB Recursion level: 135, stack pointer: 0x16F2381C0, depth: 3743.56 kB Recursion level: 136, stack pointer: 0x16F2313D0, depth: 3771.05 kB Recursion level: 137, stack pointer: 0x16F22A5E0, depth: 3798.53 kB Recursion level: 138, stack pointer: 0x16F2237F0, depth: 3826.02 kB Recursion level: 139, stack pointer: 0x16F21CA00, depth: 3853.50 kB Recursion level: 140, stack pointer: 0x16F215C10, depth: 3880.98 kB Recursion level: 141, stack pointer: 0x16F20EE20, depth: 3908.47 kB Fatal Python error: _Py_CheckRecursiveCall: Unrecoverable stack overflow (used 3931 kB) while calling a Python object Python runtime state: initialized Current thread 0x00000001f3181f00 (most recent call first): File "/Users/rok/Development/pyi-python314/repro.py", line 37 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ File "/Users/rok/Development/pyi-python314/repro.py", line 38 in __getattribute__ zsh: abort python3.14 repro.pyThe register dump in macOS crash report shows that
spregister was 6159368000 (0x16f207f40); compared to
stack pointer address reported bypthread_get_stackaddr_np, this means 4030656 bytes or 3936 kB in depth, which corroborates the Python's own error message:Unrecoverable stack overflow (used 3931 kB) while calling a Python objectSo the stack address is likely correctly initialized and stack pointer is correctly tracked, but the hard-coded limit of 4 MB is wrong; as indicated by output of
pthread_get_stacksize_np, the actual stack size is 16 MB.And for the sake of completeness - why do free-threaded version and custom build seem to pass the test without issues? Looks like the stack cost of each recursion level is (significantly) lower - presumably due to differences in build flags?
Running with free-threaded python.org build of 3.14.0b1:
Output
% python3.14t repro.py Stack address: 6162677760 = 0x16F530000 Stack size: 16777216 = 16384.0 kB = 16.0 MB Stack pointer: 0x16F52DDA0, depth: 8.59 kB Testing Recursion Limit Recursion level: 1, stack pointer: 0x16F52D1A0, depth: 11.59 kB Recursion level: 2, stack pointer: 0x16F52C530, depth: 14.70 kB Recursion level: 3, stack pointer: 0x16F52B8C0, depth: 17.81 kB Recursion level: 4, stack pointer: 0x16F52AC50, depth: 20.92 kB Recursion level: 5, stack pointer: 0x16F529FE0, depth: 24.03 kB Recursion level: 6, stack pointer: 0x16F529370, depth: 27.14 kB Recursion level: 7, stack pointer: 0x16F528700, depth: 30.25 kB Recursion level: 8, stack pointer: 0x16F527A90, depth: 33.36 kB Recursion level: 9, stack pointer: 0x16F526E20, depth: 36.47 kB Recursion level: 10, stack pointer: 0x16F5261B0, depth: 39.58 kB Recursion level: 11, stack pointer: 0x16F525540, depth: 42.69 kB Recursion level: 12, stack pointer: 0x16F5248D0, depth: 45.80 kB Recursion level: 13, stack pointer: 0x16F523C60, depth: 48.91 kB Recursion level: 14, stack pointer: 0x16F522FF0, depth: 52.02 kB Recursion level: 15, stack pointer: 0x16F522380, depth: 55.12 kB Recursion level: 16, stack pointer: 0x16F521710, depth: 58.23 kB Recursion level: 17, stack pointer: 0x16F520AA0, depth: 61.34 kB Recursion level: 18, stack pointer: 0x16F51FE30, depth: 64.45 kB Recursion level: 19, stack pointer: 0x16F51F1C0, depth: 67.56 kB Recursion level: 20, stack pointer: 0x16F51E550, depth: 70.67 kB Recursion level: 21, stack pointer: 0x16F51D8E0, depth: 73.78 kB Recursion level: 22, stack pointer: 0x16F51CC70, depth: 76.89 kB Recursion level: 23, stack pointer: 0x16F51C000, depth: 80.00 kB Recursion level: 24, stack pointer: 0x16F51B390, depth: 83.11 kB Recursion level: 25, stack pointer: 0x16F51A720, depth: 86.22 kB Recursion level: 26, stack pointer: 0x16F519AB0, depth: 89.33 kB Recursion level: 27, stack pointer: 0x16F518E40, depth: 92.44 kB Recursion level: 28, stack pointer: 0x16F5181D0, depth: 95.55 kB Recursion level: 29, stack pointer: 0x16F517560, depth: 98.66 kB Recursion level: 30, stack pointer: 0x16F5168F0, depth: 101.77 kB Recursion level: 31, stack pointer: 0x16F515C80, depth: 104.88 kB Recursion level: 32, stack pointer: 0x16F515010, depth: 107.98 kB Recursion level: 33, stack pointer: 0x16F5143A0, depth: 111.09 kB Recursion level: 34, stack pointer: 0x16F513730, depth: 114.20 kB Recursion level: 35, stack pointer: 0x16F512AC0, depth: 117.31 kB Recursion level: 36, stack pointer: 0x16F511E50, depth: 120.42 kB Recursion level: 37, stack pointer: 0x16F5111E0, depth: 123.53 kB Recursion level: 38, stack pointer: 0x16F510570, depth: 126.64 kB Recursion level: 39, stack pointer: 0x16F50F900, depth: 129.75 kB Recursion level: 40, stack pointer: 0x16F50EC90, depth: 132.86 kB Recursion level: 41, stack pointer: 0x16F50E020, depth: 135.97 kB Recursion level: 42, stack pointer: 0x16F50D3B0, depth: 139.08 kB Recursion level: 43, stack pointer: 0x16F50C740, depth: 142.19 kB Recursion level: 44, stack pointer: 0x16F50BAD0, depth: 145.30 kB Recursion level: 45, stack pointer: 0x16F50AE60, depth: 148.41 kB Recursion level: 46, stack pointer: 0x16F50A1F0, depth: 151.52 kB Recursion level: 47, stack pointer: 0x16F509580, depth: 154.62 kB Recursion level: 48, stack pointer: 0x16F508910, depth: 157.73 kB Recursion level: 49, stack pointer: 0x16F507CA0, depth: 160.84 kB Recursion level: 50, stack pointer: 0x16F507030, depth: 163.95 kB Recursion level: 51, stack pointer: 0x16F5063C0, depth: 167.06 kB Recursion level: 52, stack pointer: 0x16F505750, depth: 170.17 kB Recursion level: 53, stack pointer: 0x16F504AE0, depth: 173.28 kB Recursion level: 54, stack pointer: 0x16F503E70, depth: 176.39 kB Recursion level: 55, stack pointer: 0x16F503200, depth: 179.50 kB Recursion level: 56, stack pointer: 0x16F502590, depth: 182.61 kB Recursion level: 57, stack pointer: 0x16F501920, depth: 185.72 kB Recursion level: 58, stack pointer: 0x16F500CB0, depth: 188.83 kB Recursion level: 59, stack pointer: 0x16F500040, depth: 191.94 kB Recursion level: 60, stack pointer: 0x16F4FF3D0, depth: 195.05 kB Recursion level: 61, stack pointer: 0x16F4FE760, depth: 198.16 kB Recursion level: 62, stack pointer: 0x16F4FDAF0, depth: 201.27 kB Recursion level: 63, stack pointer: 0x16F4FCE80, depth: 204.38 kB Recursion level: 64, stack pointer: 0x16F4FC210, depth: 207.48 kB Recursion level: 65, stack pointer: 0x16F4FB5A0, depth: 210.59 kB Recursion level: 66, stack pointer: 0x16F4FA930, depth: 213.70 kB Recursion level: 67, stack pointer: 0x16F4F9CC0, depth: 216.81 kB Recursion level: 68, stack pointer: 0x16F4F9050, depth: 219.92 kB Recursion level: 69, stack pointer: 0x16F4F83E0, depth: 223.03 kB Recursion level: 70, stack pointer: 0x16F4F7770, depth: 226.14 kB Recursion level: 71, stack pointer: 0x16F4F6B00, depth: 229.25 kB Recursion level: 72, stack pointer: 0x16F4F5E90, depth: 232.36 kB Recursion level: 73, stack pointer: 0x16F4F5220, depth: 235.47 kB Recursion level: 74, stack pointer: 0x16F4F45B0, depth: 238.58 kB Recursion level: 75, stack pointer: 0x16F4F3940, depth: 241.69 kB Recursion level: 76, stack pointer: 0x16F4F2CD0, depth: 244.80 kB Recursion level: 77, stack pointer: 0x16F4F2060, depth: 247.91 kB Recursion level: 78, stack pointer: 0x16F4F13F0, depth: 251.02 kB Recursion level: 79, stack pointer: 0x16F4F0780, depth: 254.12 kB Recursion level: 80, stack pointer: 0x16F4EFB10, depth: 257.23 kB Recursion level: 81, stack pointer: 0x16F4EEEA0, depth: 260.34 kB Recursion level: 82, stack pointer: 0x16F4EE230, depth: 263.45 kB Recursion level: 83, stack pointer: 0x16F4ED5C0, depth: 266.56 kB Recursion level: 84, stack pointer: 0x16F4EC950, depth: 269.67 kB Recursion level: 85, stack pointer: 0x16F4EBCE0, depth: 272.78 kB Recursion level: 86, stack pointer: 0x16F4EB070, depth: 275.89 kB Recursion level: 87, stack pointer: 0x16F4EA400, depth: 279.00 kB Recursion level: 88, stack pointer: 0x16F4E9790, depth: 282.11 kB Recursion level: 89, stack pointer: 0x16F4E8B20, depth: 285.22 kB Recursion level: 90, stack pointer: 0x16F4E7EB0, depth: 288.33 kB Recursion level: 91, stack pointer: 0x16F4E7240, depth: 291.44 kB Recursion level: 92, stack pointer: 0x16F4E65D0, depth: 294.55 kB Recursion level: 93, stack pointer: 0x16F4E5960, depth: 297.66 kB Recursion level: 94, stack pointer: 0x16F4E4CF0, depth: 300.77 kB Recursion level: 95, stack pointer: 0x16F4E4080, depth: 303.88 kB Recursion level: 96, stack pointer: 0x16F4E3410, depth: 306.98 kB Recursion level: 97, stack pointer: 0x16F4E27A0, depth: 310.09 kB Recursion level: 98, stack pointer: 0x16F4E1B30, depth: 313.20 kB Recursion level: 99, stack pointer: 0x16F4E0EC0, depth: 316.31 kB Recursion level: 100, stack pointer: 0x16F4E0250, depth: 319.42 kB Recursion level: 101, stack pointer: 0x16F4DF5E0, depth: 322.53 kB Recursion level: 102, stack pointer: 0x16F4DE970, depth: 325.64 kB Recursion level: 103, stack pointer: 0x16F4DDD00, depth: 328.75 kB Recursion level: 104, stack pointer: 0x16F4DD090, depth: 331.86 kB Recursion level: 105, stack pointer: 0x16F4DC420, depth: 334.97 kB Recursion level: 106, stack pointer: 0x16F4DB7B0, depth: 338.08 kB Recursion level: 107, stack pointer: 0x16F4DAB40, depth: 341.19 kB Recursion level: 108, stack pointer: 0x16F4D9ED0, depth: 344.30 kB Recursion level: 109, stack pointer: 0x16F4D9260, depth: 347.41 kB Recursion level: 110, stack pointer: 0x16F4D85F0, depth: 350.52 kB Recursion level: 111, stack pointer: 0x16F4D7980, depth: 353.62 kB Recursion level: 112, stack pointer: 0x16F4D6D10, depth: 356.73 kB Recursion level: 113, stack pointer: 0x16F4D60A0, depth: 359.84 kB Recursion level: 114, stack pointer: 0x16F4D5430, depth: 362.95 kB Recursion level: 115, stack pointer: 0x16F4D47C0, depth: 366.06 kB Recursion level: 116, stack pointer: 0x16F4D3B50, depth: 369.17 kB Recursion level: 117, stack pointer: 0x16F4D2EE0, depth: 372.28 kB Recursion level: 118, stack pointer: 0x16F4D2270, depth: 375.39 kB Recursion level: 119, stack pointer: 0x16F4D1600, depth: 378.50 kB Recursion level: 120, stack pointer: 0x16F4D0990, depth: 381.61 kB Recursion level: 121, stack pointer: 0x16F4CFD20, depth: 384.72 kB Recursion level: 122, stack pointer: 0x16F4CF0B0, depth: 387.83 kB Recursion level: 123, stack pointer: 0x16F4CE440, depth: 390.94 kB Recursion level: 124, stack pointer: 0x16F4CD7D0, depth: 394.05 kB Recursion level: 125, stack pointer: 0x16F4CCB60, depth: 397.16 kB Recursion level: 126, stack pointer: 0x16F4CBEF0, depth: 400.27 kB Recursion level: 127, stack pointer: 0x16F4CB280, depth: 403.38 kB Recursion level: 128, stack pointer: 0x16F4CA610, depth: 406.48 kB Recursion level: 129, stack pointer: 0x16F4C99A0, depth: 409.59 kB Recursion level: 130, stack pointer: 0x16F4C8D30, depth: 412.70 kB Recursion level: 131, stack pointer: 0x16F4C80C0, depth: 415.81 kB Recursion level: 132, stack pointer: 0x16F4C7450, depth: 418.92 kB Recursion level: 133, stack pointer: 0x16F4C67E0, depth: 422.03 kB Recursion level: 134, stack pointer: 0x16F4C5B70, depth: 425.14 kB Recursion level: 135, stack pointer: 0x16F4C4F00, depth: 428.25 kB Recursion level: 136, stack pointer: 0x16F4C4290, depth: 431.36 kB Recursion level: 137, stack pointer: 0x16F4C3620, depth: 434.47 kB Recursion level: 138, stack pointer: 0x16F4C29B0, depth: 437.58 kB Recursion level: 139, stack pointer: 0x16F4C1D40, depth: 440.69 kB Recursion level: 140, stack pointer: 0x16F4C10D0, depth: 443.80 kB Recursion level: 141, stack pointer: 0x16F4C0460, depth: 446.91 kB Recursion level: 142, stack pointer: 0x16F4BF7F0, depth: 450.02 kB Recursion level: 143, stack pointer: 0x16F4BEB80, depth: 453.12 kB Recursion level: 144, stack pointer: 0x16F4BDF10, depth: 456.23 kB Recursion level: 145, stack pointer: 0x16F4BD2A0, depth: 459.34 kB Recursion level: 146, stack pointer: 0x16F4BC630, depth: 462.45 kB Recursion level: 147, stack pointer: 0x16F4BB9C0, depth: 465.56 kB Recursion level: 148, stack pointer: 0x16F4BAD50, depth: 468.67 kB Recursion level: 149, stack pointer: 0x16F4BA0E0, depth: 471.78 kB Recursion level: 150, stack pointer: 0x16F4B9470, depth: 474.89 kB [...] Recursion level: 950, stack pointer: 0x16F24B670, depth: 2962.39 kB Recursion level: 951, stack pointer: 0x16F24AA00, depth: 2965.50 kB Recursion level: 952, stack pointer: 0x16F249D90, depth: 2968.61 kB Recursion level: 953, stack pointer: 0x16F249120, depth: 2971.72 kB Recursion level: 954, stack pointer: 0x16F2484B0, depth: 2974.83 kB Recursion level: 955, stack pointer: 0x16F247840, depth: 2977.94 kB Recursion level: 956, stack pointer: 0x16F246BD0, depth: 2981.05 kB Recursion level: 957, stack pointer: 0x16F245F60, depth: 2984.16 kB Recursion level: 958, stack pointer: 0x16F2452F0, depth: 2987.27 kB Recursion level: 959, stack pointer: 0x16F244680, depth: 2990.38 kB Recursion level: 960, stack pointer: 0x16F243A10, depth: 2993.48 kB Recursion level: 961, stack pointer: 0x16F242DA0, depth: 2996.59 kB Recursion level: 962, stack pointer: 0x16F242130, depth: 2999.70 kB Recursion level: 963, stack pointer: 0x16F2414C0, depth: 3002.81 kB Recursion level: 964, stack pointer: 0x16F240850, depth: 3005.92 kB Recursion level: 965, stack pointer: 0x16F23FBE0, depth: 3009.03 kB Recursion level: 966, stack pointer: 0x16F23EF70, depth: 3012.14 kB Recursion level: 967, stack pointer: 0x16F23E300, depth: 3015.25 kB Recursion level: 968, stack pointer: 0x16F23D690, depth: 3018.36 kB Recursion level: 969, stack pointer: 0x16F23CA20, depth: 3021.47 kB Recursion level: 970, stack pointer: 0x16F23BDB0, depth: 3024.58 kB Recursion level: 971, stack pointer: 0x16F23B140, depth: 3027.69 kB Recursion level: 972, stack pointer: 0x16F23A4D0, depth: 3030.80 kB Recursion level: 973, stack pointer: 0x16F239860, depth: 3033.91 kB Recursion level: 974, stack pointer: 0x16F238BF0, depth: 3037.02 kB Recursion level: 975, stack pointer: 0x16F237F80, depth: 3040.12 kB Recursion level: 976, stack pointer: 0x16F237310, depth: 3043.23 kB Recursion level: 977, stack pointer: 0x16F2366A0, depth: 3046.34 kB Recursion level: 978, stack pointer: 0x16F235A30, depth: 3049.45 kB Recursion level: 979, stack pointer: 0x16F234DC0, depth: 3052.56 kB Recursion level: 980, stack pointer: 0x16F234150, depth: 3055.67 kB Recursion level: 981, stack pointer: 0x16F2334E0, depth: 3058.78 kB Recursion level: 982, stack pointer: 0x16F232870, depth: 3061.89 kB Recursion level: 983, stack pointer: 0x16F231C00, depth: 3065.00 kB Recursion level: 984, stack pointer: 0x16F230F90, depth: 3068.11 kB Recursion level: 985, stack pointer: 0x16F230320, depth: 3071.22 kB Recursion level: 986, stack pointer: 0x16F22F6B0, depth: 3074.33 kB Recursion level: 987, stack pointer: 0x16F22EA40, depth: 3077.44 kB Recursion level: 988, stack pointer: 0x16F22DDD0, depth: 3080.55 kB Recursion level: 989, stack pointer: 0x16F22D160, depth: 3083.66 kB Recursion level: 990, stack pointer: 0x16F22C4F0, depth: 3086.77 kB Recursion level: 991, stack pointer: 0x16F22B880, depth: 3089.88 kB Recursion level: 992, stack pointer: 0x16F22AC10, depth: 3092.98 kB Recursion level: 993, stack pointer: 0x16F229FA0, depth: 3096.09 kB Recursion level: 994, stack pointer: 0x16F229330, depth: 3099.20 kB Recursion level: 995, stack pointer: 0x16F2286C0, depth: 3102.31 kB Recursion level: 996, stack pointer: 0x16F227A50, depth: 3105.42 kB Recursion level: 997, stack pointer: 0x16F226DE0, depth: 3108.53 kB Recursion level: 998, stack pointer: 0x16F226170, depth: 3111.64 kB Recursion level: 999, stack pointer: 0x16F225500, depth: 3114.75 kB Recursion Limit ok (reached level 999)Running with manually built 3.14.0b1:
Output
% ./python-bin/bin/python3.14 repro.py Stack address: 6089015296 = 0x16AEF0000 Stack size: 16777216 = 16384.0 kB = 16.0 MB Stack pointer: 0x16AEEE1D0, depth: 7.55 kB Testing Recursion Limit Recursion level: 1, stack pointer: 0x16AEED910, depth: 9.73 kB Recursion level: 2, stack pointer: 0x16AEED050, depth: 11.92 kB Recursion level: 3, stack pointer: 0x16AEEC7C0, depth: 14.06 kB Recursion level: 4, stack pointer: 0x16AEEBF30, depth: 16.20 kB Recursion level: 5, stack pointer: 0x16AEEB6A0, depth: 18.34 kB Recursion level: 6, stack pointer: 0x16AEEAE10, depth: 20.48 kB Recursion level: 7, stack pointer: 0x16AEEA580, depth: 22.62 kB Recursion level: 8, stack pointer: 0x16AEE9CF0, depth: 24.77 kB Recursion level: 9, stack pointer: 0x16AEE9460, depth: 26.91 kB Recursion level: 10, stack pointer: 0x16AEE8BD0, depth: 29.05 kB Recursion level: 11, stack pointer: 0x16AEE8340, depth: 31.19 kB Recursion level: 12, stack pointer: 0x16AEE7AB0, depth: 33.33 kB Recursion level: 13, stack pointer: 0x16AEE7220, depth: 35.47 kB Recursion level: 14, stack pointer: 0x16AEE6990, depth: 37.61 kB Recursion level: 15, stack pointer: 0x16AEE6100, depth: 39.75 kB Recursion level: 16, stack pointer: 0x16AEE5870, depth: 41.89 kB Recursion level: 17, stack pointer: 0x16AEE4FE0, depth: 44.03 kB Recursion level: 18, stack pointer: 0x16AEE4750, depth: 46.17 kB Recursion level: 19, stack pointer: 0x16AEE3EC0, depth: 48.31 kB Recursion level: 20, stack pointer: 0x16AEE3630, depth: 50.45 kB Recursion level: 21, stack pointer: 0x16AEE2DA0, depth: 52.59 kB Recursion level: 22, stack pointer: 0x16AEE2510, depth: 54.73 kB Recursion level: 23, stack pointer: 0x16AEE1C80, depth: 56.88 kB Recursion level: 24, stack pointer: 0x16AEE13F0, depth: 59.02 kB Recursion level: 25, stack pointer: 0x16AEE0B60, depth: 61.16 kB Recursion level: 26, stack pointer: 0x16AEE02D0, depth: 63.30 kB Recursion level: 27, stack pointer: 0x16AEDFA40, depth: 65.44 kB Recursion level: 28, stack pointer: 0x16AEDF1B0, depth: 67.58 kB Recursion level: 29, stack pointer: 0x16AEDE920, depth: 69.72 kB Recursion level: 30, stack pointer: 0x16AEDE090, depth: 71.86 kB Recursion level: 31, stack pointer: 0x16AEDD800, depth: 74.00 kB Recursion level: 32, stack pointer: 0x16AEDCF70, depth: 76.14 kB Recursion level: 33, stack pointer: 0x16AEDC6E0, depth: 78.28 kB Recursion level: 34, stack pointer: 0x16AEDBE50, depth: 80.42 kB Recursion level: 35, stack pointer: 0x16AEDB5C0, depth: 82.56 kB Recursion level: 36, stack pointer: 0x16AEDAD30, depth: 84.70 kB Recursion level: 37, stack pointer: 0x16AEDA4A0, depth: 86.84 kB Recursion level: 38, stack pointer: 0x16AED9C10, depth: 88.98 kB Recursion level: 39, stack pointer: 0x16AED9380, depth: 91.12 kB Recursion level: 40, stack pointer: 0x16AED8AF0, depth: 93.27 kB Recursion level: 41, stack pointer: 0x16AED8260, depth: 95.41 kB Recursion level: 42, stack pointer: 0x16AED79D0, depth: 97.55 kB Recursion level: 43, stack pointer: 0x16AED7140, depth: 99.69 kB Recursion level: 44, stack pointer: 0x16AED68B0, depth: 101.83 kB Recursion level: 45, stack pointer: 0x16AED6020, depth: 103.97 kB Recursion level: 46, stack pointer: 0x16AED5790, depth: 106.11 kB Recursion level: 47, stack pointer: 0x16AED4F00, depth: 108.25 kB Recursion level: 48, stack pointer: 0x16AED4670, depth: 110.39 kB Recursion level: 49, stack pointer: 0x16AED3DE0, depth: 112.53 kB Recursion level: 50, stack pointer: 0x16AED3550, depth: 114.67 kB Recursion level: 51, stack pointer: 0x16AED2CC0, depth: 116.81 kB Recursion level: 52, stack pointer: 0x16AED2430, depth: 118.95 kB Recursion level: 53, stack pointer: 0x16AED1BA0, depth: 121.09 kB Recursion level: 54, stack pointer: 0x16AED1310, depth: 123.23 kB Recursion level: 55, stack pointer: 0x16AED0A80, depth: 125.38 kB Recursion level: 56, stack pointer: 0x16AED01F0, depth: 127.52 kB Recursion level: 57, stack pointer: 0x16AECF960, depth: 129.66 kB Recursion level: 58, stack pointer: 0x16AECF0D0, depth: 131.80 kB Recursion level: 59, stack pointer: 0x16AECE840, depth: 133.94 kB Recursion level: 60, stack pointer: 0x16AECDFB0, depth: 136.08 kB Recursion level: 61, stack pointer: 0x16AECD720, depth: 138.22 kB Recursion level: 62, stack pointer: 0x16AECCE90, depth: 140.36 kB Recursion level: 63, stack pointer: 0x16AECC600, depth: 142.50 kB Recursion level: 64, stack pointer: 0x16AECBD70, depth: 144.64 kB Recursion level: 65, stack pointer: 0x16AECB4E0, depth: 146.78 kB Recursion level: 66, stack pointer: 0x16AECAC50, depth: 148.92 kB Recursion level: 67, stack pointer: 0x16AECA3C0, depth: 151.06 kB Recursion level: 68, stack pointer: 0x16AEC9B30, depth: 153.20 kB Recursion level: 69, stack pointer: 0x16AEC92A0, depth: 155.34 kB Recursion level: 70, stack pointer: 0x16AEC8A10, depth: 157.48 kB Recursion level: 71, stack pointer: 0x16AEC8180, depth: 159.62 kB Recursion level: 72, stack pointer: 0x16AEC78F0, depth: 161.77 kB Recursion level: 73, stack pointer: 0x16AEC7060, depth: 163.91 kB Recursion level: 74, stack pointer: 0x16AEC67D0, depth: 166.05 kB Recursion level: 75, stack pointer: 0x16AEC5F40, depth: 168.19 kB Recursion level: 76, stack pointer: 0x16AEC56B0, depth: 170.33 kB Recursion level: 77, stack pointer: 0x16AEC4E20, depth: 172.47 kB Recursion level: 78, stack pointer: 0x16AEC4590, depth: 174.61 kB Recursion level: 79, stack pointer: 0x16AEC3D00, depth: 176.75 kB Recursion level: 80, stack pointer: 0x16AEC3470, depth: 178.89 kB Recursion level: 81, stack pointer: 0x16AEC2BE0, depth: 181.03 kB Recursion level: 82, stack pointer: 0x16AEC2350, depth: 183.17 kB Recursion level: 83, stack pointer: 0x16AEC1AC0, depth: 185.31 kB Recursion level: 84, stack pointer: 0x16AEC1230, depth: 187.45 kB Recursion level: 85, stack pointer: 0x16AEC09A0, depth: 189.59 kB Recursion level: 86, stack pointer: 0x16AEC0110, depth: 191.73 kB Recursion level: 87, stack pointer: 0x16AEBF880, depth: 193.88 kB Recursion level: 88, stack pointer: 0x16AEBEFF0, depth: 196.02 kB Recursion level: 89, stack pointer: 0x16AEBE760, depth: 198.16 kB Recursion level: 90, stack pointer: 0x16AEBDED0, depth: 200.30 kB Recursion level: 91, stack pointer: 0x16AEBD640, depth: 202.44 kB Recursion level: 92, stack pointer: 0x16AEBCDB0, depth: 204.58 kB Recursion level: 93, stack pointer: 0x16AEBC520, depth: 206.72 kB Recursion level: 94, stack pointer: 0x16AEBBC90, depth: 208.86 kB Recursion level: 95, stack pointer: 0x16AEBB400, depth: 211.00 kB Recursion level: 96, stack pointer: 0x16AEBAB70, depth: 213.14 kB Recursion level: 97, stack pointer: 0x16AEBA2E0, depth: 215.28 kB Recursion level: 98, stack pointer: 0x16AEB9A50, depth: 217.42 kB Recursion level: 99, stack pointer: 0x16AEB91C0, depth: 219.56 kB Recursion level: 100, stack pointer: 0x16AEB8930, depth: 221.70 kB Recursion level: 101, stack pointer: 0x16AEB80A0, depth: 223.84 kB Recursion level: 102, stack pointer: 0x16AEB7810, depth: 225.98 kB Recursion level: 103, stack pointer: 0x16AEB6F80, depth: 228.12 kB Recursion level: 104, stack pointer: 0x16AEB66F0, depth: 230.27 kB Recursion level: 105, stack pointer: 0x16AEB5E60, depth: 232.41 kB Recursion level: 106, stack pointer: 0x16AEB55D0, depth: 234.55 kB Recursion level: 107, stack pointer: 0x16AEB4D40, depth: 236.69 kB Recursion level: 108, stack pointer: 0x16AEB44B0, depth: 238.83 kB Recursion level: 109, stack pointer: 0x16AEB3C20, depth: 240.97 kB Recursion level: 110, stack pointer: 0x16AEB3390, depth: 243.11 kB Recursion level: 111, stack pointer: 0x16AEB2B00, depth: 245.25 kB Recursion level: 112, stack pointer: 0x16AEB2270, depth: 247.39 kB Recursion level: 113, stack pointer: 0x16AEB19E0, depth: 249.53 kB Recursion level: 114, stack pointer: 0x16AEB1150, depth: 251.67 kB Recursion level: 115, stack pointer: 0x16AEB08C0, depth: 253.81 kB Recursion level: 116, stack pointer: 0x16AEB0030, depth: 255.95 kB Recursion level: 117, stack pointer: 0x16AEAF7A0, depth: 258.09 kB Recursion level: 118, stack pointer: 0x16AEAEF10, depth: 260.23 kB Recursion level: 119, stack pointer: 0x16AEAE680, depth: 262.38 kB Recursion level: 120, stack pointer: 0x16AEADDF0, depth: 264.52 kB Recursion level: 121, stack pointer: 0x16AEAD560, depth: 266.66 kB Recursion level: 122, stack pointer: 0x16AEACCD0, depth: 268.80 kB Recursion level: 123, stack pointer: 0x16AEAC440, depth: 270.94 kB Recursion level: 124, stack pointer: 0x16AEABBB0, depth: 273.08 kB Recursion level: 125, stack pointer: 0x16AEAB320, depth: 275.22 kB Recursion level: 126, stack pointer: 0x16AEAAA90, depth: 277.36 kB Recursion level: 127, stack pointer: 0x16AEAA200, depth: 279.50 kB Recursion level: 128, stack pointer: 0x16AEA9970, depth: 281.64 kB Recursion level: 129, stack pointer: 0x16AEA90E0, depth: 283.78 kB Recursion level: 130, stack pointer: 0x16AEA8850, depth: 285.92 kB Recursion level: 131, stack pointer: 0x16AEA7FC0, depth: 288.06 kB Recursion level: 132, stack pointer: 0x16AEA7730, depth: 290.20 kB Recursion level: 133, stack pointer: 0x16AEA6EA0, depth: 292.34 kB Recursion level: 134, stack pointer: 0x16AEA6610, depth: 294.48 kB Recursion level: 135, stack pointer: 0x16AEA5D80, depth: 296.62 kB Recursion level: 136, stack pointer: 0x16AEA54F0, depth: 298.77 kB Recursion level: 137, stack pointer: 0x16AEA4C60, depth: 300.91 kB Recursion level: 138, stack pointer: 0x16AEA43D0, depth: 303.05 kB Recursion level: 139, stack pointer: 0x16AEA3B40, depth: 305.19 kB Recursion level: 140, stack pointer: 0x16AEA32B0, depth: 307.33 kB Recursion level: 141, stack pointer: 0x16AEA2A20, depth: 309.47 kB Recursion level: 142, stack pointer: 0x16AEA2190, depth: 311.61 kB Recursion level: 143, stack pointer: 0x16AEA1900, depth: 313.75 kB Recursion level: 144, stack pointer: 0x16AEA1070, depth: 315.89 kB Recursion level: 145, stack pointer: 0x16AEA07E0, depth: 318.03 kB Recursion level: 146, stack pointer: 0x16AE9FF50, depth: 320.17 kB Recursion level: 147, stack pointer: 0x16AE9F6C0, depth: 322.31 kB Recursion level: 148, stack pointer: 0x16AE9EE30, depth: 324.45 kB Recursion level: 149, stack pointer: 0x16AE9E5A0, depth: 326.59 kB Recursion level: 150, stack pointer: 0x16AE9DD10, depth: 328.73 kB [...] Recursion level: 950, stack pointer: 0x16ACF1B10, depth: 2041.23 kB Recursion level: 951, stack pointer: 0x16ACF1280, depth: 2043.38 kB Recursion level: 952, stack pointer: 0x16ACF09F0, depth: 2045.52 kB Recursion level: 953, stack pointer: 0x16ACF0160, depth: 2047.66 kB Recursion level: 954, stack pointer: 0x16ACEF8D0, depth: 2049.80 kB Recursion level: 955, stack pointer: 0x16ACEF040, depth: 2051.94 kB Recursion level: 956, stack pointer: 0x16ACEE7B0, depth: 2054.08 kB Recursion level: 957, stack pointer: 0x16ACEDF20, depth: 2056.22 kB Recursion level: 958, stack pointer: 0x16ACED690, depth: 2058.36 kB Recursion level: 959, stack pointer: 0x16ACECE00, depth: 2060.50 kB Recursion level: 960, stack pointer: 0x16ACEC570, depth: 2062.64 kB Recursion level: 961, stack pointer: 0x16ACEBCE0, depth: 2064.78 kB Recursion level: 962, stack pointer: 0x16ACEB450, depth: 2066.92 kB Recursion level: 963, stack pointer: 0x16ACEABC0, depth: 2069.06 kB Recursion level: 964, stack pointer: 0x16ACEA330, depth: 2071.20 kB Recursion level: 965, stack pointer: 0x16ACE9AA0, depth: 2073.34 kB Recursion level: 966, stack pointer: 0x16ACE9210, depth: 2075.48 kB Recursion level: 967, stack pointer: 0x16ACE8980, depth: 2077.62 kB Recursion level: 968, stack pointer: 0x16ACE80F0, depth: 2079.77 kB Recursion level: 969, stack pointer: 0x16ACE7860, depth: 2081.91 kB Recursion level: 970, stack pointer: 0x16ACE6FD0, depth: 2084.05 kB Recursion level: 971, stack pointer: 0x16ACE6740, depth: 2086.19 kB Recursion level: 972, stack pointer: 0x16ACE5EB0, depth: 2088.33 kB Recursion level: 973, stack pointer: 0x16ACE5620, depth: 2090.47 kB Recursion level: 974, stack pointer: 0x16ACE4D90, depth: 2092.61 kB Recursion level: 975, stack pointer: 0x16ACE4500, depth: 2094.75 kB Recursion level: 976, stack pointer: 0x16ACE3C70, depth: 2096.89 kB Recursion level: 977, stack pointer: 0x16ACE33E0, depth: 2099.03 kB Recursion level: 978, stack pointer: 0x16ACE2B50, depth: 2101.17 kB Recursion level: 979, stack pointer: 0x16ACE22C0, depth: 2103.31 kB Recursion level: 980, stack pointer: 0x16ACE1A30, depth: 2105.45 kB Recursion level: 981, stack pointer: 0x16ACE11A0, depth: 2107.59 kB Recursion level: 982, stack pointer: 0x16ACE0910, depth: 2109.73 kB Recursion level: 983, stack pointer: 0x16ACE0080, depth: 2111.88 kB Recursion level: 984, stack pointer: 0x16ACDF7F0, depth: 2114.02 kB Recursion level: 985, stack pointer: 0x16ACDEF60, depth: 2116.16 kB Recursion level: 986, stack pointer: 0x16ACDE6D0, depth: 2118.30 kB Recursion level: 987, stack pointer: 0x16ACDDE40, depth: 2120.44 kB Recursion level: 988, stack pointer: 0x16ACDD5B0, depth: 2122.58 kB Recursion level: 989, stack pointer: 0x16ACDCD20, depth: 2124.72 kB Recursion level: 990, stack pointer: 0x16ACDC490, depth: 2126.86 kB Recursion level: 991, stack pointer: 0x16ACDBC00, depth: 2129.00 kB Recursion level: 992, stack pointer: 0x16ACDB370, depth: 2131.14 kB Recursion level: 993, stack pointer: 0x16ACDAAE0, depth: 2133.28 kB Recursion level: 994, stack pointer: 0x16ACDA250, depth: 2135.42 kB Recursion level: 995, stack pointer: 0x16ACD99C0, depth: 2137.56 kB Recursion level: 996, stack pointer: 0x16ACD9130, depth: 2139.70 kB Recursion level: 997, stack pointer: 0x16ACD88A0, depth: 2141.84 kB Recursion level: 998, stack pointer: 0x16ACD8010, depth: 2143.98 kB Recursion level: 999, stack pointer: 0x16ACD7780, depth: 2146.12 kB Recursion Limit ok (reached level 999

Crash report
What happened?
Hello,
In the CI of
cloudpickle, we encountered a crash of the python interpreter due to a stack overflow withpython3.14.0a6.Reverting to
python3.14.0a5fixes the error.This might be related to GH-130398, with a bad detection of the limit of the stack?
I could not test it locally as I don't own a mac.
Output with
python3.14.0a5:Output with
python3.14.0a6:CPython versions tested on:
3.14
Operating systems tested on:
macOS
Output from running 'python -VV' on the command line:
No response