The RPC service can deadlock the background thread during snapshot creation and synchronization. Both race to take the lock_ mutex, but the RPC service will hold it while waiting for the snapshot to complete (which it never will). The loop that checks for snapshot progress needs to give up this lock.
The RPC service can deadlock the background thread during snapshot creation and synchronization. Both race to take the lock_ mutex, but the RPC service will hold it while waiting for the snapshot to complete (which it never will). The loop that checks for snapshot progress needs to give up this lock.