From e6a560b40797324aa8b90e7100c6d50bff91f14d Mon Sep 17 00:00:00 2001
From: Colin Walters <walters@verbum.org>
Date: Thu, 30 Sep 2021 15:53:18 -0400
Subject: [PATCH] deploy: Ignore sockets, fifos in /etc during merge
https://bugzilla.redhat.com/show_bug.cgi?id=1945274 is an issue where a privileged
kubernetes daemonset is writing a socket into `/etc`. This makes ostree upgrades barf.
Now, they should clearly move it to `/run`. However, one option is for us to
just ignore it instead of erroring out. Some brief investigation shows that
e.g. `git add somesocket` is a silent no-op, which is an argument in favor of ignoring it.
Closes: https://github.com/ostreedev/ostree/issues/2446
---
src/libostree/ostree-sysroot-deploy.c | 4 +---
tests/kolainst/destructive/staged-deploy.sh | 20 +++++++++++++++++++
.../test-admin-deploy-etcmerge-cornercases.sh | 7 +++++++
3 files changed, 28 insertions(+), 3 deletions(-)
diff --git a/src/libostree/ostree-sysroot-deploy.c b/src/libostree/ostree-sysroot-deploy.c
index 6a13a41b..a8bf9f44 100644
--- a/src/libostree/ostree-sysroot-deploy.c
+++ b/src/libostree/ostree-sysroot-deploy.c
@@ -488,9 +488,7 @@ copy_modified_config_file (int orig_etc_fd,
}
else
{
- return glnx_throw (error,
- "Unsupported non-regular/non-symlink file in /etc '%s'",
- path);
+ ot_journal_print (LOG_INFO, "Ignoring non-regular/non-symlink file found during /etc merge: %s", path);
}
return TRUE;