-
Notifications
You must be signed in to change notification settings - Fork 109
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
Support ls #120
Comments
openat was fixed in #151, detours for ls still pending but low priority |
Add a detour for the `getdents64` Linux syscall to support `os.ReadDir` on Go. Part of #120. This PR adds a detour for `getdents64`, the necessary protocol messages for that (request + response), the handling on the agent side, and the following tests: 1. Integration test for Go's `os.ReadDir` on linux, using the same go program as the existing integration test for mac. The test has to be different because on Linux Go calls the `getdents64` syscall so it's a different flow with different messages, so the linux test simulates that case. 2. Integration test for bypassing `os.ReadDir`. This test checks that if we did hook the syscall but then determined this directory should be read locally, that when we then "bypass" and call the syscall locally - it works as expected. 3. E2E test - uses a similar Go app, and verifies that `getdents64` detour logic also works on the agent's side.
Maybe we should recheck some of the use-cases after #2003. Maybe more stuff works now? |
Ah yes, I checked |
Should this also include newfstatat()? I run a java application via mirrord, and it cannot find a file that's present remotely (via a configmap mount). Running within strace, I see this attempt to access that path:
In Java, I use java.nio.file.Files walk() method at that point. #2001 also mentions that Java class, but I have no segfault, and run 3.72.0 which is said to containt that fix. |
@MartinEmrich files under |
@t4lz Thanks, that did the trick, it works! |
@infiniteregrets Could you please retest the first four use cases (Python list - ls on Linux)? |
macos:
|
support for ls in python and node was added by #2145 |
Our files feature currently support most of the relevant syscalls, but we still need to add support for ls.
After #904, this is what is left to be done (prioritized)
ls
binary - macOSls
binary - LinuxI think the best way would be to drop each as separate PRs, first few tasks will resolve most of the libc functions :)
The text was updated successfully, but these errors were encountered: