Ticket Hash: | 897b96d49d16dcc4dcfa5bd88ded30700e74bc94 | ||
Title: | SQLITE_CANTOPEN when using journal_mode=persist and async IO | ||
Status: | Deferred | Type: | Code_Defect |
Severity: | Minor | Priority: | Immediate |
Subsystem: | Extensions | Resolution: | Open |
Last Modified: |
2009-10-19 11:43:27 15.71 years ago |
Created: |
2009-10-08 08:15:31 15.74 years ago |
Version Found In: | 3.6.18 |
Description: | ||||
Steps to reproduce: <ol> <li> not call sqlite3async_run(); <li> open new not yet existing database; <li> execute PRAGMA journal_mode = PERSIST; <li> execute any 2 statements needing a transaction, e.g. some CREATE TABLE </ol> Tcl test code: <verbatim> sqlite3 db test.db -vfs sqlite3async sqlite3 db2 test.db -vfs sqlite3async do_test async4-3.1 { execsql { PRAGMA journal_mode = PERSIST; CREATE TABLE t1(a, b); } } {persist} do_test async4-3.2 { execsql { CREATE TABLE t2(a, b) } db2 } {} do_test async4.3.X { db close db2 close sqlite3async_control halt idle sqlite3async_start sqlite3async_wait } {} </verbatim> Test case async4-3.2 fails with "Error: unable to open database file". <hr><i>dan added on 2009-10-19 11:43:11:</i><br> This is a real bug, and it is possible to fix it. However, the nature of the fix is such that it would quite possibly introduce other, more serious bugs (the kind that can cause database corruption). For this reason, this will not be fixed in the short term. For now, the resolution is to consider async IO and persistent-journal mode incompatible. |