Message348897
Going to take a stab in the dark - the the issue lies here:
"./Python/errors.c"
#ifndef Py_NORMALIZE_RECURSION_LIMIT
#define Py_NORMALIZE_RECURSION_LIMIT 32
#endif
As there is not enough memory for this to run in the default memory model.
However, 32 does not seem to be a counter limit:
With this "hack" I get success:
script = """if True:
import threading
def recurse(loop=0):
loop = loop+1
if loop < 128+32+8+3:
return recurse(loop)
else:
return
def outer():
try:
recurse()
except RecursionError:
pass
w = threading.Thread(target=outer)
w.start()
w.join()
print('end of main thread')
"""
So, I hope this helps point at where we need to look to find why RecursionError is not being returned when (I assume) memory runs out. |
|
Date |
User |
Action |
Args |
2019-08-02 09:52:26 | Michael.Felt | set | recipients:
+ Michael.Felt, ronaldoussoren, vstinner, ned.deily, steve.dower, matrixise, miss-islington |
2019-08-02 09:52:26 | Michael.Felt | set | messageid: <1564739546.32.0.528055045668.issue18049@roundup.psfhosted.org> |
2019-08-02 09:52:26 | Michael.Felt | link | issue18049 messages |
2019-08-02 09:52:26 | Michael.Felt | create | |
|