]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Merge pull request #21116 from poettering/test-cleaner
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 25 Oct 2021 14:16:14 +0000 (23:16 +0900)
committerGitHub <noreply@github.com>
Mon, 25 Oct 2021 14:16:14 +0000 (23:16 +0900)
make tests a bit cleaner in regards to oomd handling

src/core/cgroup.c
src/core/core-varlink.c

index 931b31e2e1874db67a050759d9f130405058b675..3c4602d0962ff4f6c52de72d89e17396a3755cf9 100644 (file)
@@ -3043,12 +3043,15 @@ int unit_check_oom(Unit *u) {
                 return 0;
 
         r = cg_get_keyed_attribute("memory", u->cgroup_path, "memory.events", STRV_MAKE("oom_kill"), &oom_kill);
-        if (r < 0)
+        if (IN_SET(r, -ENOENT, -ENXIO)) /* Handle gracefully if cgroup or oom_kill attribute don't exist */
+                c = 0;
+        else if (r < 0)
                 return log_unit_debug_errno(u, r, "Failed to read oom_kill field of memory.events cgroup attribute: %m");
-
-        r = safe_atou64(oom_kill, &c);
-        if (r < 0)
-                return log_unit_debug_errno(u, r, "Failed to parse oom_kill field: %m");
+        else {
+                r = safe_atou64(oom_kill, &c);
+                if (r < 0)
+                        return log_unit_debug_errno(u, r, "Failed to parse oom_kill field: %m");
+        }
 
         increased = c > u->oom_kill_last;
         u->oom_kill_last = c;
index 04d9d9641724a35e608587e7a3dd1ed8bdf280d3..ab0d45538048161cb3b54ec388b02542fbf58770 100644 (file)
@@ -562,6 +562,9 @@ static int manager_varlink_init_user(Manager *m) {
         if (m->managed_oom_varlink)
                 return 1;
 
+        if (MANAGER_IS_TEST_RUN(m))
+                return 0;
+
         r = varlink_connect_address(&link, VARLINK_ADDR_PATH_MANAGED_OOM_USER);
         if (r == -ENOENT || ERRNO_IS_DISCONNECT(r)) {
                 log_debug("systemd-oomd varlink unix socket not found, skipping user manager varlink setup");