SQLite

Ticket Change Details
Login
Overview

Artifact ID: cc324cdb97320e583cec70211445c68a2ab2372a
Ticket: 7ff3120e4fa54abb551b1b7d1bc3835604e8b879
Recovery race condition leads to database corruption on Windows
User & Date: drh 2013-04-11 18:04:38
Changes

  1. icomment:
    The xCheckReservedLock() method on the windows VFS can sometimes return a
    false positive, if two different processes call it on the same file at the
    same time.  This leads one of the processes (the one that got the false
    positive) to believe that the other process is taking care of recovering
    from a prior crash.  That process might then write into the database without
    first running recovery, leading to corruption.
    
    To see this occur, compile and run the "mptester" utility with the mptest/crash01.test script many times on a fast multi-core win8 machine using
    check-in [663f04bd48bc6f3022] and you will eventually get integrity_check
    failures.
    
  2. login: "drh"
  3. mimetype: "text/x-fossil-wiki"
  4. severity changed to: "Critical"
  5. status changed to: "Open"
  6. title changed to:
    Recovery race condition leads to database corruption on Windows
    
  7. type changed to: "Code_Defect"