-
Notifications
You must be signed in to change notification settings - Fork 797
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
faccessat2 throws EPERM instead of ENOSYS #6562
Comments
As I understand it, WSL 2 does not reimplement or interpose itself between the application and any system calls. Since it uses the actual Linux kernel, the response you get is in line with what you should get from 5.4 or 4.19 (depending on which you’re currently running.) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Environment
Steps to reproduce
docker run --network=host --rm -it archlinux/base:latest /bin/bash
pacman -Syy
pacman -S glibc runc
To update glibc and runc individually.pacman -Syu
Just a command that uses the affected (missing) syscall.strace:
and if run using
--privileged
WSL logs:
Expected behavior
The syscall should either be implemented (updating to kernel >5.8) or throw the "ENOSYS" instead of "EPERM".
Actual behavior
Linux 5.8 introduced a new syscall "faccessat2" which is required by current glibc and runc versions. Because of that ArchLinux docker containers fail to run on WSL2 right now with strange errors. Also the package manager pacman is suffering from this issue.
For the above mentioned example with pacman the output is:
Note: also whitelisting this syscall using
--security-opt seccomp=test.json
didn't work. As it still returns EPERM instead of ENOSYS...Workarounds
--privileged
works around this issue, as it returns the correct ENOSYS response.Relates to
https://bugs.archlinux.org/index.php?do=details&task_id=69563
The text was updated successfully, but these errors were encountered: