forked from pool/systemd
.
OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=466
This commit is contained in:
parent
d1bbfd1b80
commit
c2c2ea7545
70
1011-check-4-valid-kmsg-device.patch
Normal file
70
1011-check-4-valid-kmsg-device.patch
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
From: Werner Fink <werner@suse.de>
|
||||||
|
Date: Thu, 21 Nov 2013 11:50:32 +0000
|
||||||
|
Subject: [PATCH] Avoid busy systemd-journald
|
||||||
|
|
||||||
|
Avoid a busy systemd-journald due polling a broken /dec/kmsg in lxc
|
||||||
|
environments.
|
||||||
|
|
||||||
|
---
|
||||||
|
journald-kmsg.c | 27 ++++++++++++++++++++++++++-
|
||||||
|
1 file changed, 26 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
Index: systemd-208/src/journal/journald-kmsg.c
|
||||||
|
===================================================================
|
||||||
|
--- systemd-208/src/journal/journald-kmsg.c
|
||||||
|
+++ systemd-208/src/journal/journald-kmsg.c 2013-11-21 13:30:22.930735683 +0000
|
||||||
|
@@ -23,7 +23,9 @@
|
||||||
|
#include <sys/epoll.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <sys/mman.h>
|
||||||
|
+#include <sys/stat.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
+#include <sys/types.h>
|
||||||
|
|
||||||
|
#include <systemd/sd-messages.h>
|
||||||
|
#include <libudev.h>
|
||||||
|
@@ -377,20 +379,43 @@ int server_flush_dev_kmsg(Server *s) {
|
||||||
|
|
||||||
|
int server_open_dev_kmsg(Server *s) {
|
||||||
|
struct epoll_event ev;
|
||||||
|
+ struct stat st;
|
||||||
|
|
||||||
|
assert(s);
|
||||||
|
|
||||||
|
s->dev_kmsg_fd = open("/dev/kmsg", O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY);
|
||||||
|
if (s->dev_kmsg_fd < 0) {
|
||||||
|
- log_warning("Failed to open /dev/kmsg, ignoring: %m");
|
||||||
|
+ /* Do not warn as it may not exists in LXC environments */
|
||||||
|
+ if (errno != ENOENT)
|
||||||
|
+ log_warning("Failed to open /dev/kmsg, ignoring: %m");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (fstat(s->dev_kmsg_fd, &st) < 0) {
|
||||||
|
+ log_error("Failed to stat /dev/kmsg fd, ignoring: %m");
|
||||||
|
+ close_nointr_nofail(s->dev_kmsg_fd);
|
||||||
|
+ s->dev_kmsg_fd = -1;
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (!S_ISCHR(st.st_mode) || major(st.st_rdev) != 1 || minor(st.st_rdev) != 11) {
|
||||||
|
+ int old_errno = errno;
|
||||||
|
+ errno = ENODEV;
|
||||||
|
+ log_warning("Irregular device /dev/kmsg, ignoring: %m");
|
||||||
|
+ errno = old_errno;
|
||||||
|
+ close_nointr_nofail(s->dev_kmsg_fd);
|
||||||
|
+ s->dev_kmsg_fd = -1;
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
zero(ev);
|
||||||
|
ev.events = EPOLLIN;
|
||||||
|
ev.data.fd = s->dev_kmsg_fd;
|
||||||
|
if (epoll_ctl(s->epoll_fd, EPOLL_CTL_ADD, s->dev_kmsg_fd, &ev) < 0) {
|
||||||
|
|
||||||
|
+ close_nointr_nofail(s->dev_kmsg_fd);
|
||||||
|
+ s->dev_kmsg_fd = -1;
|
||||||
|
+
|
||||||
|
/* This will fail with EPERM on older kernels where
|
||||||
|
* /dev/kmsg is not readable. */
|
||||||
|
if (errno == EPERM)
|
@ -1,3 +1,10 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Nov 21 12:27:11 UTC 2013 - werner@suse.de
|
||||||
|
|
||||||
|
- Add patch
|
||||||
|
1011-check-4-valid-kmsg-device.patch
|
||||||
|
to avoid a busy systemd-journald (bnc#851393)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Nov 6 09:42:05 UTC 2013 - werner@suse.de
|
Wed Nov 6 09:42:05 UTC 2013 - werner@suse.de
|
||||||
|
|
||||||
|
@ -258,6 +258,8 @@ Patch1008: 1008-add-msft-compability-rules.patch
|
|||||||
Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch
|
Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch
|
||||||
# PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071)
|
# PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071)
|
||||||
Patch1010: 1010-do-not-install-sulogin-unit-with-poweroff.patch
|
Patch1010: 1010-do-not-install-sulogin-unit-with-poweroff.patch
|
||||||
|
# PATCH-FIX-OPENSUSE 1011-check-4-valid-kmsg-device.patch -- Avoid busy systemd-journald (bnc#851393)
|
||||||
|
Patch1011: 1011-check-4-valid-kmsg-device.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Systemd is a system and service manager, compatible with SysV and LSB
|
Systemd is a system and service manager, compatible with SysV and LSB
|
||||||
@ -534,6 +536,7 @@ cp %{SOURCE7} m4/
|
|||||||
%endif
|
%endif
|
||||||
%patch1009 -p1
|
%patch1009 -p1
|
||||||
%patch1010 -p1
|
%patch1010 -p1
|
||||||
|
%patch1011 -p1
|
||||||
|
|
||||||
# ensure generate files are removed
|
# ensure generate files are removed
|
||||||
rm -f units/emergency.service
|
rm -f units/emergency.service
|
||||||
|
Loading…
Reference in New Issue
Block a user