> T2 will try to acquire RESERVED lock of its own, but T1 is already
> holding PENDING. At this point SQLite will return to the caller with 
> SQLITE_BUSY return code. The only way out of this situation is for T2 to 
> ROLLBACK and retry the transaction from the beginning.

Suppose next:

1. Transaction T2 perform complex calculation

2. T1 have time to release EXCLUSIVE lock ***before*** T2 try
   to acquire RESERVED lock

3. At this moment, no one transaction have RESERVED or PENDING or
   EXCLUSIVE lock

4. Transaction T2 acquire RESERVED lock, then PENDING, then EXCLUSIVE
   and commit transaction.
   
   Result of T1 transaction is lost.


Best regards,
 Alexander                            mailto:[EMAIL PROTECTED]

Reply via email to