-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Version ZFS ioctls #1290
Comments
+1 I just had an outdated version of the userland utilities tell me that all of my vdevs were corrupted when I was trying to import a pool. |
Once #1923 is merged @ryao what do you think, is this is reasonable first step? I know you've given this some thought. |
As a point of reference FreeBSD does implement compatibility between older utilities and newer kernels in zfs_ioctl_compat.c. This would be desirable but it doesn't really cover our more likely case of the utilities being updated but the kernel being left back until a reboot can be scheduled. Still this would be nice to have so I thought I'd reference it. |
@behlendorf Didn't you finish this, or was it just the prequel (#1923)? |
@FransUrbo #1923 was just the first easy part. That allows us to cleanly expose the module version information. Now the utilities need to do something with it. |
Ah, ok. |
Closing. This issue was addressed by the following commits which provide nvpair validation for new style ioc input and a mechanism for the installed kernel module to advertise what features and properties are supported. b83a0e2 Add basic zfs ioc input nvpair validation |
We've had a couple cases where the user space bits end up out of sync with the kernel modules. Something because the kernel modules couldn't be unloaded, sometimes because the user space packages never got updated. This can result in strange behavior and bogus bug reports.
To catch this sort of problem early it would probably be a good idea to start strictly versioning the ioctl()s. This would all us to detect immediately is something isn't right and report a useful error to the user. It would also force us to be even stricter about ABI changes to this interface.
The text was updated successfully, but these errors were encountered: