-
Notifications
You must be signed in to change notification settings - Fork 41
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
Syscall to IOCTL_TRACKING_ADD
fails, raising function not implemented
#32
Comments
Thanks for the feedback! |
Ah, I get it.
I'm not a fan of the 'go' language. At first glance, everything is correct. We have checked these kernels, there are no problems. |
And check this code
is it equal to |
I didn't consider the problem to be on our side, since this virtually works on every other system, but the RHEL8, with those specific kernel versions. Could be an edge-case also. Will investigate further. |
Alas, I cannot join your research. Check that the module is built specifically for this version of the kernel, as compatibility problems are possible. Write about the results of research this problem. I'm very interested. |
Hi @SergeiShtepa , Thanks for the leads. We'll test a bit more on our side. We will attempt to run that The is essentially an instance of the But given that we don't use a Thanks for the tips, for your continued work on this module and the efforts to upstream it! Will ping back with results. |
Hi Sergei, Not yet. Been swamped lately, but will definitely ping back when I manage to find the cause. I did not forget, just swamped at the moment. |
Hello! A sample C program and some additional logging have been added to the veeamsnap module, for debugging purposes, here: master...aznashwan:veeamsnap:debug-ioctl-cmd We had found that when running the sample C program, the same Error code 38 is ENOSYS: Function not implemented. This is the same error thrown by our GO agent. The extra logging will also show the IOCTL command code each program is trying to run. Both the C program and the GO agent call the same IOCTL command 1074288130 (IOCTL_TRACKING_ADD), therefore we can exclude our agent being the problem here. |
Yep.
Get VAL 5.* and trace IOCTL_SET_KERNEL_ENTRIES/IOCTL_GET_UNRESOLVED_KERNEL_ENTRIES. These are the crutches. Allows to call functions that are not exported by the kernel. That is why this work is important. |
This call runs fine on most of the distros we had tested on. Only ones with issues are Red Hat Enterprise Linux 8 (and others based on it, like CentOS 8, Oracle Linux 8), when running their latest kernel version -
4.18.0-348.7.1.el8_5.x86_64
This call is successful when running on older kernel versions, like the ones that come preinstalled with the OS ISOs (for releases up to 8.3)
Here is the exact call we're trying to run: https://github.com/cloudbase/coriolis-snapshot-agent/blob/main/internal/ioctl/ioctl.go#L175
Kernel versions that this successfully runs on:
Kernel versions that this call fails:
veeamsnap module is always built from source, master branch.
The text was updated successfully, but these errors were encountered: