-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
nix-shell under Windows WSL is broken #1203
Comments
I did an
Was enough to get
|
Maybe this should be reported as a bug in WSL? SQLite is a pretty widely used piece of software, so I assume we're not the only ones affected by this. |
Is this fixed now? |
I have confirmed this is still a problem. I've used SQLite with WAL enabled in native Windows applications and it worked fine. There must be something going on in WSL specifically. But you're right that it is only for performance. |
microsoft/WSL#2395 seems to be the issue for WSL. |
Hi all,
|
Have you tried to disable WAL mode as suggested in #1203 (comment)? |
That did the trick. Thanks @ThomasMader and @TerrorJack! |
note that this is still broken, and the "use-sqlite-wal = false" workaround no longer works, at least on Win10 with the october 2018 update. |
try adding this to
|
I wonder if there is some way that we can detect we're running on WSL and disable WAL mode automatically? |
Note that, as far as I understand, WSL 2 should fix this bug. It replaces the Linux API emulation with an actual Linux kernel. |
@pcatana Tried your suggestion, but that did not work for me. |
This is fixed in master and 2.3.6 |
One of Cachix users today reported that they had to revert this change to get WSL2 working. Will see how it goes in the following days. |
WSL is the Windows Subsystem for Linux. It allows us to run Elf binaries under Windows. It works pretty well for nix-build commands but nix-shell is currently failing.
nix-shell fails because it contains a call to
derivationForPath
which opens up the SQLite DB. It then calls a nix-store command which fails because it also tries to open the DB. SQLite throws a "disk I/O error" for the call.The text was updated successfully, but these errors were encountered: