This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author hydroflask
Recipients erlendaasland, hydroflask
Date 2021-08-02.20:29:41
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1627936181.46.0.275104250595.issue42698@roundup.psfhosted.org>
In-reply-to
Content
>> The major problem is that I don't exactly know how to provoke SQLite to
>> acquire an internal lock.

> IIRC, you can provoke the internal SQLite lock simply by using transaction control: BEGIN (lock) => COMMIT / ROLLBACK (unlock).

Ah okay, so the sequence would have to be this:

thread1: pysqlite.some_operation()
thread1: release gil
thread1: sqlite3_some_procedure()
thread1: acquire sqlite lock
<switch threads>
thread2: acquire gil
thread2: pysqlite.close()
thread2: sqlite3_close()
thread2: acquire sqlite lock

> I'll see if I can come up with a compact repro.

It should be possible, good luck!
History
Date User Action Args
2021-08-02 20:29:41hydroflasksetrecipients: + hydroflask, erlendaasland
2021-08-02 20:29:41hydroflasksetmessageid: <1627936181.46.0.275104250595.issue42698@roundup.psfhosted.org>
2021-08-02 20:29:41hydroflasklinkissue42698 messages
2021-08-02 20:29:41hydroflaskcreate