Open
Description
Bug report
Bug description:
This is a follow up of #112282 (updating doc).
It's also a different case of #128544 (import chains impacted).
In particular, on top of the doc no longer being correct for sys.setrecursionlimit
, the regression needs to be fixed.
Note: this works in python 3.11 or below.
import pickle
import sys
nested_object = current = {}
for i in range(10000):
current['nested'] = {}
current = current['nested']
sys.setrecursionlimit(3750000)
x = pickle.dumps(nested_object)
Result of the run:
▶▶ python3.11 test-issue.py
# runs ok
▶▶ python3.12 test-issue.py
Traceback (most recent call last):
File "~/test-issue.py", line 10, in <module>
x = pickle.dumps(nested_object)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
RecursionError: maximum recursion depth exceeded while pickling an object
Impact: all programs trying to pickle data that is too nested cannot be ported to python 3.12 or 3.13 so far
CPython versions tested on:
3.12, 3.13
Operating systems tested on:
Linux, macOS, Windows
Metadata
Metadata
Assignees
Labels
only security fixesonly security fixesbugs and security fixesbugs and security fixesbugs and security fixesbugs and security fixesC modules in the Modules dirC modules in the Modules dirAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error