Message348897
| Author |
Michael.Felt |
| Recipients |
Michael.Felt, matrixise, miss-islington, ned.deily, ronaldoussoren, steve.dower, vstinner |
| Date |
2019年08月02日.09:52:26 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1564739546.32.0.528055045668.issue18049@roundup.psfhosted.org> |
| In-reply-to |
| Content |
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. |
|