This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

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.
History
Date User Action Args
2019-08-02 09:52:26Michael.Feltsetrecipients: + Michael.Felt, ronaldoussoren, vstinner, ned.deily, steve.dower, matrixise, miss-islington
2019-08-02 09:52:26Michael.Feltsetmessageid: <1564739546.32.0.528055045668.issue18049@roundup.psfhosted.org>
2019-08-02 09:52:26Michael.Feltlinkissue18049 messages
2019-08-02 09:52:26Michael.Feltcreate