Control: notfound -1 sqlite3/3.32.1-2 Control: retitle -1 bad SQLite deterministic check in self-tests
On Wed, Jun 3, 2020 at 5:09 PM Paul Gevers <elb...@debian.org> wrote: > With a recent upload of sqlite3 the autopkgtest of python3.8 fails in > testing when that autopkgtest is run with the binary packages of sqlite3 > from unstable. [...] > Currently this regression is blocking the migration of sqlite3 to > testing [1]. Due to the nature of this issue, I filed this bug report > against both packages. Can you please investigate the situation and > reassign the bug to the right package? Some background information. In SQLite you can tag functions as deterministic, meaning it will always give back the same result on the same input values. Python 3.8+ test it with: 'select deterministic() = deterministic()' and think it will be called once as its assert is the following: 'self.assertEqual(mock.call_count, 1)'. This is wrong, as deterministic doesn't mean it will be called once for the left side of the equality then filled out on the right side just because it's the same function call. The query planner can and will call it again since SQLite version 3.15.0, as you could see the called number is 2 in the build failure. That means it's a bad SQLite check implementation in Python 3.8+ which was already reported to them as Issue 40784 [1]. They fixed it on their Git master branch and of course backported for the 3.8 release of Python [2]. Tested to be sure and it fixes the issue. Hopefully Matthias will add it to its packaging soon. Regards, Laszlo/GCS [1] https://bugs.python.org/issue40784 [2] https://github.com/python/cpython/commit/c610d970f5373b143bf5f5900d4645e6a90fb460