New submission from Erlend E. Aasland <erlend.aasl...@innova.no>:

Currently, two calls can raise exceptions in the _trace_callback() in 
Modules/_sqlite/connection.c:

  1. PyUnicode_DecodeUTF8() can raise an exception
  2. PyObject_CallOneArg() — calling the user callback — can raise an exception

Currently, we either PyErr_Print() the traceback, or we PyErr_Clear() it. In 
either case; we clear the current exception. The other SQLite callbacks pass 
some kind of return value back to SQLite to indicate failure (which is normally 
then passed to _pysqlite_seterror() via sqlite3_step() or sqlite3_finalize(), 
but the trace callback does not pass errors back to SQLite; we're unable to 
detect if the trace callback fails.

----------
components: Extension Modules
files: reproducer.py
messages: 400955
nosy: erlendaasland
priority: normal
severity: normal
status: open
title: [sqlite3] the trace callback does not raise exceptions on error
versions: Python 3.11
Added file: https://bugs.python.org/file50259/reproducer.py

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue45089>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to