Hello,

we have a situation where "BEGIN IMMEDIATE" unexpectedly returns SQLITE_ERROR 
with message "cannot start a transaction within a transaction (1)".

We have multiple threads running which repeatedly do the following:

<create connection>
BEGIN IMMEDIATE
        INSERT ...
        INSERT ...
COMMIT
<close connection>

This means each thread is using its own connection so that no synchronization 
is required nor performed.

Sometimes "BEGIN IMMEDIATE" fails with SQLITE_ERROR instead of the expected 
SQLITE_BUSY.

The behavior is present since 3.17 up to latest 3.22. We did not see this with 
earlier versions.

We are running on Windows x64 and SQLite is built from amalgamation with 
SQLITE_THREADSAFE set to 2.

I am posting to get a confirmation that my understanding is correct and that 
"BEGIN IMMEDIATE" should not return this error in this situation. In that case 
we can also try to narrow down the change in 3.17 which causes the failure.

Thank you,
Detlef.


_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to