Skip to content

Conversation

@giuseppe
Copy link
Member

When unix.Rename() fails with EBUSY while replacing the merged directory mountpoint, fall back to removing both directories and creating a fresh mountpoint directory. This could happen if the mount leaked in some mount namespace.

This addresses cases where the target mountpoint is busy and cannot be atomically replaced, providing a workaround for the rename approach introduced in commit d9ec6b5.

It reintroduces in part the issue fixed by that commit but the window of opportunity is much smaller, as it needs #skip_mount_home and the mount leaked via a recursive mount from the host into another container.

When unix.Rename() fails with EBUSY while replacing the merged
directory mountpoint, fall back to removing both directories and
creating a fresh mountpoint directory.  This could happen if the
mount leaked in some mount namespace.

This addresses cases where the target mountpoint is busy and cannot
be atomically replaced, providing a workaround for the rename
approach introduced in commit d9ec6b5.

It reintroduces in part the issue fixed by that commit but the window
of opportunity is much smaller, as it needs #skip_mount_home and the
mount leaked via a recursive mount from the host into another container.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
@github-actions github-actions bot added the storage Related to "storage" package label Jan 30, 2026
@giuseppe
Copy link
Member Author

under investigation for CRI-O. Do not review yet.

@giuseppe giuseppe changed the title overlay: add EBUSY workaround for rename [DO NOT REVIEW] overlay: add EBUSY workaround for rename Jan 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

storage Related to "storage" package

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant