Skip to content
  • Carlos Garnacho's avatar
    libtracker-data: Drop unconditional locks around wal checkpoints · 69c3cf70
    Carlos Garnacho authored
    This can happen from 2 different places:
    1) Idly on a thread. In this case it uses a dedicated interface, so
       there's no need to lock it. We use a passive checkpoint, so it
       will also bail out if there are other readers or writers.
    2) Immediately on pressure. This will happen during database updates
       (eg. while stepping on a prepared statement). This case may happen
       from within other places we lock the interface
       (eg. tracker_db_interface_execute_vquery). This path will actually
       lead to deadlocks, as we try to lock the mutex while already holding
       it. And anyway this will happen on an interface dedicated to updates
       used from a single thread.
    
    Just drop the lock/unlock calls here. We don't need them. Fixes deadlocks
    seen on case number 2.
    69c3cf70