Bug#1058027: pybj: FTBFS with Python 3.12
Dear Maintainer, Python 3.12 changed recursion mechanism [1] sys.setrecursionlimit() and sys.getrecursionlimit(). The recursion limit now applies only to Python code. Builtin functions do not use the recursion limit, but are protected by a different mechanism that prevents recursion from causing a virtual machine crash. so increasing recursion limit as py-ubjson did [2] makes your package buildable. E.g. --- a/test/test.py +++ b/test/test.py @@ -477,10 +477,10 @@ def test_recursion(self): old_limit = getrecursionlimit() - setrecursionlimit(200) + setrecursionlimit(100) try: obj = current = [] - for _ in range(getrecursionlimit() * 2): + for _ in range(getrecursionlimit() * 30): new_list = [] current.append(new_list) current = new_list @@ -488,7 +488,7 @@ with self.assert_raises_regex(RuntimeError, 'recursion'): self.bjddumpb(obj) - raw = ARRAY_START * (getrecursionlimit() * 2) + raw = ARRAY_START * (getrecursionlimit() * 30) with self.assert_raises_regex(RuntimeError, 'recursion'): self.bjdloadb(raw) finally: Kind Regards [1] https://docs.python.org/3/whatsnew/3.12.html#sys [2] https://sources.debian.org/src/py-ubjson/0.16.1-3/debian/patches/py12_recursion_PR19.diff/
Bug#1058027: pybj: FTBFS with Python 3.12
Source: pybj Version: 0.2.6-1 Severity: serious Tags: ftbfs sid trixie User: debian-pyt...@lists.debian.org Usertags: python3.12 Hi Maintainer pybj FTBFS [1] with Python 3.12 as a supported version. I've copied what I hope is the relevant part of the log below. Regards Graham [1] https://buildd.debian.org/status/package.php?p=pybj == FAIL: test_recursion (test.TestEncodeDecodeFpExt.test_recursion) -- Traceback (most recent call last): File "/<>/.pybuild/cpython3_3.12_bjdata/build/test/test.py", line 488, in test_recursion with self.assert_raises_regex(RuntimeError, 'recursion'): AssertionError: RuntimeError not raised == FAIL: test_recursion (test.TestEncodeDecodePlainExt.test_recursion) -- Traceback (most recent call last): File "/<>/.pybuild/cpython3_3.12_bjdata/build/test/test.py", line 488, in test_recursion with self.assert_raises_regex(RuntimeError, 'recursion'): AssertionError: RuntimeError not raised -- Ran 120 tests in 4.563s FAILED (failures=2) E: pybuild pybuild:395: test: plugin distutils failed with: exit code=1: cd /<>/.pybuild/cpython3_3.12_bjdata/build; python3.12 -m unittest discover -v test/ I: pybuild base:310: cd /<>/.pybuild/cpython3_3.11_bjdata/build; python3.11 -m unittest discover -v test/