Blob Blame History Raw
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;