Message383471
pysqlite_connection_dealloc() calls sqlite3_close{,_v2}(). This can cause a deadlock if sqlite3_close() tries to acquire a lock that another thread holds, due to a deadlock between the GIL and an internal sqlite3 lock.
This is especially common with sqlite3's "shared cache mode."
Since the GIL should not be released during a tp_dealloc function and python has no control over the behavior of sqlite3_close(), it is incorrect to call sqlite3_close() in pysqlite_connection_dealloc(). |
|
Date |
User |
Action |
Args |
2020-12-21 00:44:44 | hydroflask | set | recipients:
+ hydroflask |
2020-12-21 00:44:44 | hydroflask | set | messageid: <1608511484.37.0.765804145287.issue42698@roundup.psfhosted.org> |
2020-12-21 00:44:44 | hydroflask | link | issue42698 messages |
2020-12-21 00:44:43 | hydroflask | create | |
|