-
Notifications
You must be signed in to change notification settings - Fork 38
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
feat(csi driver): make mount and unmounts non-blocking #888
base: develop
Are you sure you want to change the base?
Conversation
Abhinandan-Purkait
commented
Nov 23, 2024
•
edited
Loading
edited
- Adds the mount utils to frontend and backend sys mount calls via a child process
- Makes the currently mount and umount calls async
abe89bc
to
d3ebd38
Compare
bors try |
tryBuild failed: |
bors try |
tryBuild failed: |
bors try |
Testing:
Observations:
|
tryBuild failed: |
mount = mount.data(data_str); | ||
} | ||
|
||
mount |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wonder if we need this at all anymore, if it's not safe to call ioctl directly, maybe we can simply call the mount binary? Though it might be safer to do this first until we figure out how to migrate from this to mount/unmount arguments properly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
With using binaries directly, the errors become a bit vague, but anyhow yeah we can do that. For now kept it as it was to keep the same behaviour.
use sys_mount::{FilesystemType, Mount, MountFlags, UnmountFlags}; | ||
|
||
/// Calls sys mount's mount in a spawn blocking. | ||
pub(crate) async fn mount( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If the mount/unmount calls get stuck due to the device being in a bad state, how are you ensuring you don't keep stacking up new processes trying to the same operation?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In my testing I did not see any process stacking up.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't the ioctl get stuck? Which hangs the server. I thought this was the issue causing the the lockups.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When the problem happens(repro), have you checked the host's dmesg if it shows any softlockup or oops message from kernel? In that case the host is already unreliable.
bors try |
tryBuild succeeded: |
2111c90
to
ae92ce5
Compare
…ount calls by spwaning process Signed-off-by: Abhinandan Purkait <purkaitabhinandan@gmail.com>
ae92ce5
to
59331c1
Compare