-
Notifications
You must be signed in to change notification settings - Fork 1.8k
[2.3.2] Revert "zinject: count matches and injections for each handler" #17137
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
[2.3.2] Revert "zinject: count matches and injections for each handler" #17137
Conversation
Adding fields to zinject_record_t unexpectedly extended zfs_cmd_t, preventing some things working properly with 2.3.1 userspace tools against 2.3.0 kernel module. This reverts commit fabdd50. Sponsored-by: Klara, Inc. Sponsored-by: Wasabi Technology, Inc. Signed-off-by: Rob Norris <[email protected]>
Not everybody upgrades immediately after a release comes out, so it might be worth it. |
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 it affects things outside of zinject
itself (I hoped it won't) and we will to release 2.3.2 soon enough, then it makes sense.
I got bit pretty hard yesterday, and I think it was related to this. Anyway would you be able to infer from this short log snippet that this was indeed caused by fabdd50?
Because if it did, I would urge you to release v2.3.2 ASAP. I got screwed already but there're still people out there waiting to be saved! |
I can't say for certain without more study, but I think it's highly plausible. The auto-mount behaviour calls out to the userspace #17190 looks like the same thing. @tonyhutter we should probably get a 2.3.2 out there as soon as we can (though maybe the horse has bolted already). If you want to, and I can help somewhere, please let me know. |
Actually, thinking more. If 2.3.1 is already out there, then we're just going to blow up again when 2.3.2 userspace gets out there. Should I do a patch to try to support both? |
I just put out the 2.3.2 proposed pathset: #17214. Let me know if you want to add an additional patch to support both, or bail on mismatched kernel/userspace for |
@tonyhutter seems wider than that, if it can contribute to the snapshot automount request infinite looping. In any case, I'm not sure much can be done outside of querying the kernel module version number, and I don't know if I trust that since vendors patch things in surprising ways. I had hoped I could find a way to get the kernel module to tell me something I could use to infer the size of its I'm not personally too bothered about it; like, I hate that it happened, but that ship has sailed. But if there's a quick way to detect it that might not cause further problems, I'll do something, otherwise lets just press on. |
Motivation and Context
2.3.1 introduced a userspace/kernel ABI break that I missed. As a result, 2.3.1 userspace tools are incompatible with <2.3.1 kernel modules for many tasks.
After I updated userspace to 2.3.1,
zfs send
started returningEINVAL
, andzfs events
returnedEBADF
. I rebooted and didn't think much of it; my local machine is weird sometimes.Later I noticed why: the "match counts" change adds a couple of fields to
zinject_record_t
. There's one of those embedded in the middle ofzfs_cmd_t
.zc_cleanup_fd
and some of the send params both occur after that field. The kernel and userspace were running on different layouts, so couldn't find what they needed.I don't know if you want to revert the change and cut a 2.3.2 release. If you do, this is the revert. It might be unnecessary though. depends how long before folks can reboot.
(also, an apology from me: feels like something I should have noticed. I'm gonna go put some compile time size checks on a few things to hopefully help prevent this next time).
Description
Adding fields to
zinject_record_t
unexpectedly extendedzfs_cmd_t
, preventing some things working properly with 2.3.1 userspace tools against 2.3.0 kernel module.This reverts commit fabdd50.
How Has This Been Tested?
Compile checked only.
Types of changes
Checklist:
Signed-off-by
.