What did you expect to happen?
The system should have something like
pub fn is_fs_error(err: &std::io::Error) -> bool {
matches!(err.raw_os_error(), Some(30))
}
This is, because at least on POSIX compliant systems code 30 is EROFS (Error Read Only FileSyystem).
So instead of failing to open the journal, crashing, and blocking terminal access. The system continues, it simply doesn't log the error.
What happened?
mdadm kicked itself into a protected state after a drive faulted.
My / was still healthy, but mounted read-only. Atuin was unable to journal to commands, so my terminal would just show generic errors about Atuin journal being unable to open with error code 30. Which given
Atuin was returning error code 30, and my whole terminal would not work.
Atuin doctor output
I literally could not run shell commands to check.
I also apologize but I will not be attempting to recreate this problem.
---
As for system information:
1. GNU Bash
2. Bash preexec
3. No I will not be testing alternative configurations.
Code of Conduct
What did you expect to happen?
The system should have something like
This is, because at least on POSIX compliant systems code 30 is
EROFS(Error Read Only FileSyystem).So instead of failing to open the journal, crashing, and blocking terminal access. The system continues, it simply doesn't log the error.
What happened?
mdadmkicked itself into a protected state after a drive faulted.My
/was still healthy, but mounted read-only. Atuin was unable to journal to commands, so my terminal would just show generic errors about Atuin journal being unable to open with error code30. Which givenAtuin was returning error code 30, and my whole terminal would not work.
Atuin doctor output
Code of Conduct