nixos/filesystems: mount-pstore.service improvements#124431
Conversation
|
Anything I can do to move this forward? I have a bunch of machines running the same kernel without |
|
Sorry, I'll get on this today. I want to rewrite the service because I noticed systemd-pstore can get started too early with |
systemd's modprobe@.service does not require success so mount-pstore executed despite a non-present pstore module, leading to an error about the /sys/fs/pstore mountpoint not existing on CONFIG_PSTORE=n systems.
If the pstore module is builtin, it nonetheless can take considerable time to register a backend despite /sys/fs/pstore already appearing mounted, so the condition is moved into the main script to extend waiting for the backend to this case.
|
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: |
|
My system has no My unknowledgeable guess is that some condition should be added somewhere to disable I'm using |
|
As I understand it there isn't really any way good way to tell whether a persistent store is available (since there are a number of possibilities) until the kernel does or doesn't manage to use it. You will want to simply add |
|
Turns out, this breaks the unstable-small channel: https://hydra.nixos.org/eval/1689382 -> https://nix-cache.s3.amazonaws.com/log/2wi0635565fzq9pjx410cipmfqggj4qk-vm-test-run-installer-simple.drv |
|
I see, these virtual machines come without a pstore backend and the failure to activate all services is treated as an unsuccessful test, which makes sense - and so the failure is a much bigger issue than when a human can judge it to be correct or not. Considering other automated tools will probably relying on the absence of failures, adding some config to make this succeed seems inappropriate, since it would need to be replicated everywhere. |
|
Should be fixed in #131587, currently running the test locally to confirm. |
Motivation for this change
The previous implementation was not functioning correctly for configurations other than
CONFIG_PSTORE m(the NixOS default). This replaces themodprobe@.servicedependency with a script (forn) and waits for the backend to be registered even if the persistent storage is already mounted (fory).See also #123902 (comment).
Things done
sandboxinnix.confon non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"./result/bin/)