mirror of
https://github.com/clearlinux/systemd-stable.git
synced 2026-06-15 18:25:53 +00:00
journald: accept EPOLLERR from /dev/kmsg
Also print out unexpected epoll events explictly.
This commit is contained in:
@@ -1027,7 +1027,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;
|
||||
}
|
||||
|
||||
@@ -1076,8 +1077,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;
|
||||
}
|
||||
|
||||
@@ -1091,7 +1096,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;
|
||||
}
|
||||
|
||||
@@ -1219,7 +1226,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;
|
||||
}
|
||||
|
||||
@@ -1230,6 +1238,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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user