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

Reply via email to