Also print out unexpected epoll events explictly.
---
Hi,
could you try with the following patch?
Zbyszek
src/journal/journald-server.c | 20 +++-
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c
index cc8ce0d..e888480 100644
--- a/src/journal/journald-server.c
+++ b/src/journal/journald-server.c
@@ -1060,7 +1060,8 @@ int process_event(Server *s, struct epoll_event *ev) {
ssize_t n;
if (ev->events != EPOLLIN) {
-log_error("Got invalid event from epoll.");
+log_error("Got invalid event from epoll for %s:
%"PRIx32,
+ "signal fd", ev->events);
return -EIO;
}
@@ -1113,8 +1114,12 @@ int process_event(Server *s, struct epoll_event *ev) {
} else if (ev->data.fd == s->dev_kmsg_fd) {
int r;
-if (ev->events != EPOLLIN) {
-log_error("Got invalid event from epoll.");
+if (ev->events & EPOLLERR)
+log_warning("/dev/kmsg buffer overrun, some messages
lost.");
+
+if (!(ev->events & EPOLLIN)) {
+log_error("Got invalid event from epoll for %s:
%"PRIx32,
+ "/dev/kmsg", ev->events);
return -EIO;
}
@@ -1128,7 +1133,9 @@ int process_event(Server *s, struct epoll_event *ev) {
ev->data.fd == s->syslog_fd) {
if (ev->events != EPOLLIN) {
-log_error("Got invalid event from epoll.");
+log_error("Got invalid event from epoll for %s:
%"PRIx32,
+ ev->data.fd == s->native_fd ? "native fd" :
"syslog fd",
+ ev->events);
return -EIO;
}
@@ -1249,7 +1256,8 @@ int process_event(Server *s, struct epoll_event *ev) {
} else if (ev->data.fd == s->stdout_fd) {
if (ev->events != EPOLLIN) {
-log_error("Got invalid event from epoll.");
+log_error("Got invalid event from epoll for %s:
%"PRIx32,
+ "stdout fd", ev->events);
return -EIO;
}
@@ -1260,6 +1268,8 @@ int process_event(Server *s, struct epoll_event *ev) {
StdoutStream *stream;
if ((ev->events|EPOLLIN|EPOLLHUP) != (EPOLLIN|EPOLLHUP)) {
+log_error("Got invalid event from epoll for %s:
%"PRIx32,
+ "stdout stream", ev->events);
log_error("Got invalid event from epoll.");
return -EIO;
}
--
1.8.3.1
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel