systemd/0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch
Frederic Crozat 0f607e8017 Accepting request 199084 from home:elvigia:branches:Base:System
- 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch 
  missing important check on return value.
- 0002-cgroup-correct-the-log-information.patch fix misleading
  log information.
- 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch fix
  setting memory cgroup
- 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch
  should fail if write fails.
- 0005-core-cgroup-first-print-then-free.patch use-after-free
  will trigger if there is an error condition.
- 0006-swap-fix-reverse-dependencies.patch reported in 
  opensuse-factory list, topic "swap isn't activated"
- 0007-libudev-fix-move_later-comparison.patch libudev
  invalid usage of "move_later".

- while testing this new release I get in the logs ocassionally
  at boot "systemd[1]: Failed to open private bus connection: 
  Failed to connect to socket /var/run/dbus/system_bus_socket: 
  No such file or directory" indeed DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
  is defined to /var/run/dbus/system_bus_socket instead of 
  /run/dbus/system_bus_socket and that does not fly when /var/run
  is not yet available. (systemd-dbus-system-bus-address.patch)

- 0001-cgroup-add-the-missing-setting-of-variable-s-value.patch 
  missing important check on return value.
- 0002-cgroup-correct-the-log-information.patch fix misleading
  log information.
- 0003-cgroup-fix-incorrectly-setting-memory-cgroup.patch fix
  setting memory cgroup
- 0004-random-seed-we-should-return-errno-of-failed-loop_wr.patch

OBS-URL: https://build.opensuse.org/request/show/199084
OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=434
2013-09-16 09:46:56 +00:00

47 lines
2.1 KiB
Diff

From bebbf30ef61e4cbc782731e48ad67613aab38ec6 Mon Sep 17 00:00:00 2001
From: Gao feng <gaofeng@cn.fujitsu.com>
Date: Fri, 13 Sep 2013 14:43:04 +0800
Subject: [PATCH 3/7] cgroup: fix incorrectly setting memory cgroup
If the memory_limit of unit is -1, we should write "-1"
to the file memory.limit_in_bytes. not the (unit64_t) -1.
otherwise the memory.limit_in_bytes will be set to zero.
---
src/core/cgroup.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/src/core/cgroup.c b/src/core/cgroup.c
index aee93ba..244baff 100644
--- a/src/core/cgroup.c
+++ b/src/core/cgroup.c
@@ -257,14 +257,21 @@ void cgroup_context_apply(CGroupContext *c, CGroupControllerMask mask, const cha
if (mask & CGROUP_MEMORY) {
char buf[DECIMAL_STR_MAX(uint64_t) + 1];
+ if (c->memory_limit != (uint64_t) -1) {
+ sprintf(buf, "%" PRIu64 "\n", c->memory_limit);
+ r = cg_set_attribute("memory", path, "memory.limit_in_bytes", buf);
+ } else
+ r = cg_set_attribute("memory", path, "memory.limit_in_bytes", "-1");
- sprintf(buf, "%" PRIu64 "\n", c->memory_limit);
- r = cg_set_attribute("memory", path, "memory.limit_in_bytes", buf);
if (r < 0)
log_error("Failed to set memory.limit_in_bytes on %s: %s", path, strerror(-r));
- sprintf(buf, "%" PRIu64 "\n", c->memory_soft_limit);
- r = cg_set_attribute("memory", path, "memory.soft_limit_in_bytes", buf);
+ if (c->memory_soft_limit != (uint64_t) -1) {
+ sprintf(buf, "%" PRIu64 "\n", c->memory_soft_limit);
+ r = cg_set_attribute("memory", path, "memory.soft_limit_in_bytes", buf);
+ } else
+ r = cg_set_attribute("memory", path, "memory.soft_limit_in_bytes", "-1");
+
if (r < 0)
log_error("Failed to set memory.soft_limit_in_bytes on %s: %s", path, strerror(-r));
}
--
1.8.1.4