-
Notifications
You must be signed in to change notification settings - Fork 55
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
Do not call failure to destroy a mounted FS an INTERNAL_ERROR #1160
Comments
Kudos on keeping the state consistent now 😃 |
Related: #1141. There are two problems here, both very deep. The first is the problem that engine errors are often mapped to D-Bus INTERNAL error when they are not actually internal errors. That whole system needs a complete overhaul. The second is that stratis just converts the low-level DM errors to Stratis errors and returns them. That needs chaining to handle properly. There are very many of these examples. I suggest filing a super-issue and putting all these related problems in a single issue (because they cannot be fixed separately). |
That's not going to happen for 1.0, but we need to do something for the present. Right now we're getting a EngineError(DmError(NixError(EBUSY))) or something like that, resulting in the INTERNAL ERROR, but we should be able to catch and convert this to a StratisError with a useful "device is busy" error message, that is a Dbus::ERROR, not a Dbus::INTERNAL_ERROR. |
Use of error-chain in dm-rs causes some complications to what I was thinking in previous comment. Getting through the IoctlError to the underlying chained io:Error is unpleasant and I can't get it to compile We also may want to not use |
Do something for the present to solve what problem? |
The non-helpful error message. |
The thing that will fix our problem seems to have been merged into Rust nightly 11 days ago: https://doc.rust-lang.org/nightly/std/error/trait.Error.html. Also: rust-lang/rfcs#2504, and rust-lang/rust#53533. |
There is more than one non-helpful message...I would stake my life on it. |
So, at what point will something that was merged into nightly 11 days ago start to do us any good? |
Included in a Rust stable release around March 2019, and then however long for it to get packaged for distros we care about. |
This whole situation is most dispiriting. |
Seems like I'm working on this. |
fixed by #1167 |
What we get when we try to destroy a mounted FS
# bin/stratis filesystem destroy testing fs1 Execution failure caused by: INTERNAL ERROR: low-level ioctl error
I think we should be a little more helpful to the user.
The text was updated successfully, but these errors were encountered: