diff options
author | Théophane Hufschmitt <7226587+thufschmitt@users.noreply.github.com> | 2023-01-02 11:08:43 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-02 11:08:43 +0100 |
commit | e8a3e581710d43e8df12bee0b2bd10ae69159b04 (patch) | |
tree | bd26b28663ded794f46a7c8e135078aa75838230 | |
parent | dd115c03199bf72b131652538d847d612e4ab2c6 (diff) | |
parent | 81c3f99b3668a1ea6a37792a5bcc3bc6f39729a2 (diff) |
Merge pull request #7521 from ncfavier/migration-deadlock
Release shared lock before acquiring exclusive lock
-rw-r--r-- | src/libstore/local-store.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc index b67668e52..3bab10af9 100644 --- a/src/libstore/local-store.cc +++ b/src/libstore/local-store.cc @@ -91,6 +91,7 @@ void migrateCASchema(SQLite& db, Path schemaPath, AutoCloseFD& lockFd) if (!lockFile(lockFd.get(), ltWrite, false)) { printInfo("waiting for exclusive access to the Nix store for ca drvs..."); + lockFile(lockFd.get(), ltNone, false); // We have acquired a shared lock; release it to prevent deadlocks lockFile(lockFd.get(), ltWrite, true); } @@ -299,6 +300,7 @@ LocalStore::LocalStore(const Params & params) if (!lockFile(globalLock.get(), ltWrite, false)) { printInfo("waiting for exclusive access to the Nix store..."); + lockFile(globalLock.get(), ltNone, false); // We have acquired a shared lock; release it to prevent deadlocks lockFile(globalLock.get(), ltWrite, true); } |