mirror of
https://github.com/NixOS/nix.git
synced 2024-11-22 06:42:28 +00:00
Disable use-sqlite-wal under WSL
Before:
$ nix-channel --update
unpacking channels...
warning: SQLite database '/nix/var/nix/db/db.sqlite' is busy (SQLITE_PROTOCOL)
warning: SQLite database '/nix/var/nix/db/db.sqlite' is busy (SQLITE_PROTOCOL)
warning: SQLite database '/nix/var/nix/db/db.sqlite' is busy (SQLITE_PROTOCOL)
warning: SQLite database '/nix/var/nix/db/db.sqlite' is busy (SQLITE_PROTOCOL)
warning: SQLite database '/nix/var/nix/db/db.sqlite' is busy (SQLITE_PROTOCOL)
After:
$ inst/bin/nix-channel --update
unpacking channels...
created 1 symlinks in user environment
I've seen complaints that "sandbox" caused problems under WSL but I'm
having no problems. I think recent changes could have fixed the issue.
(cherry picked from commit d25923263e
)
Signed-off-by: Domen Kožar <domen@dev.si>
This commit is contained in:
parent
a729883bf1
commit
35f5da530a
@ -103,6 +103,15 @@ StringSet Settings::getDefaultSystemFeatures()
|
|||||||
return features;
|
return features;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Settings::isWSL1()
|
||||||
|
{
|
||||||
|
struct utsname utsbuf;
|
||||||
|
uname(&utsbuf);
|
||||||
|
// WSL1 uses -Microsoft suffix
|
||||||
|
// WSL2 uses -microsoft-standard suffix
|
||||||
|
return hasSuffix(utsbuf.release, "-Microsoft");
|
||||||
|
}
|
||||||
|
|
||||||
const string nixVersion = PACKAGE_VERSION;
|
const string nixVersion = PACKAGE_VERSION;
|
||||||
|
|
||||||
template<> void BaseSetting<SandboxMode>::set(const std::string & str)
|
template<> void BaseSetting<SandboxMode>::set(const std::string & str)
|
||||||
|
@ -34,6 +34,8 @@ class Settings : public Config {
|
|||||||
|
|
||||||
StringSet getDefaultSystemFeatures();
|
StringSet getDefaultSystemFeatures();
|
||||||
|
|
||||||
|
bool isWSL1();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Settings();
|
Settings();
|
||||||
@ -130,7 +132,7 @@ public:
|
|||||||
Setting<bool> fsyncMetadata{this, true, "fsync-metadata",
|
Setting<bool> fsyncMetadata{this, true, "fsync-metadata",
|
||||||
"Whether SQLite should use fsync()."};
|
"Whether SQLite should use fsync()."};
|
||||||
|
|
||||||
Setting<bool> useSQLiteWAL{this, true, "use-sqlite-wal",
|
Setting<bool> useSQLiteWAL{this, !isWSL1(), "use-sqlite-wal",
|
||||||
"Whether SQLite should use WAL mode."};
|
"Whether SQLite should use WAL mode."};
|
||||||
|
|
||||||
Setting<bool> syncBeforeRegistering{this, false, "sync-before-registering",
|
Setting<bool> syncBeforeRegistering{this, false, "sync-before-registering",
|
||||||
|
Loading…
Reference in New Issue
Block a user