-
Notifications
You must be signed in to change notification settings - Fork 347
[RFC] Revert partially "criu: handle symlink mount dests" #1757
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
Conversation
commit e0b0158 introduced a regression with podman system tests. When the lookup in the chroot fails, fallback to the previous behavior of using the verbatim destination path. Signed-off-by: Giuseppe Scrivano <[email protected]>
Reviewer's GuideThis pull request modifies the CRIU integration in crun to revert part of a previous change by replacing a hard error on failing to resolve a mount destination under the container rootfs with a fallback to the original destination path, thereby fixing a regression in Podman system tests. Sequence Diagram: Conditional Mount Path Handling in CRIU FunctionssequenceDiagram
participant Func as "CRIU Function (Checkpoint/Restore)"
participant Resolver as "chroot_realpath()"
participant Wrapper as "libcriu_wrapper"
Func->>Resolver: chroot_realpath(rootfs, original_dest, buf)
Resolver-->>Func: absolute_resolved_path_or_null
alt absolute_resolved_path_or_null is NOT NULL
Func->>Func: dest_in_root = absolute_resolved_path + strlen(rootfs)
else absolute_resolved_path_or_null is NULL (Fallback)
Func->>Func: dest_in_root = original_dest
end
Func->>Wrapper: criu_add_ext_mount(dest_in_root, ...)
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Overall the patch LGTM, but I'm intrigued as to what are the failures, @giuseppe can you link to failed CI? |
Hmm, I think this line is the source of the issue:
In here
Both paths are absolute, and it does not make sense to join them. I traced this back to commit c7fe8f7. My code in commit e0b0158 uses this as rootfs, which is obviously wrong. Will open a PR. |
Opened #1758. Will take a look at why criu root is set to bundle + rootfs tomorrow (see previous comment). Maybe @adrianreber you remember something? |
Unfortunately I don't remember much about this code. The goal was to make it work. It definitely could be that it works just by accident. Reading your comments now it definitely sounds wrong what the code does. |
closing in favor of #1758 |
commit e0b0158 introduced a regression with podman system tests.
When the lookup in the chroot fails, fallback to the previous behavior of using the verbatim destination path.
Summary by Sourcery
Restore previous mount destination handling in CRIU integration by falling back to the original destination path when chroot_realpath fails, preventing regressions in Podman system tests.
Bug Fixes: