Remove unused patches
This commit is contained in:
parent
09cfcb545f
commit
431b0fca30
@ -1,164 +0,0 @@
|
|||||||
From 1c3c8eefd0a40d4938d6f05969c886988116a425 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Quentin Armitage <quentin@armitage.org.uk>
|
|
||||||
Date: Wed, 6 Nov 2019 23:15:23 +0000
|
|
||||||
Subject: [PATCH] Resolve file descriptor errors on reload
|
|
||||||
|
|
||||||
If a read or write thread was on the thread reaady queue when a
|
|
||||||
reload was processed, the file descriptor was not removed from the
|
|
||||||
epoll instance.
|
|
||||||
|
|
||||||
This commit ensures that file descriptors relating to threads on
|
|
||||||
the thread ready queue are removed from the epoll instance during
|
|
||||||
a reload.
|
|
||||||
|
|
||||||
Signed-off-by: Quentin Armitage <quentin@armitage.org.uk>
|
|
||||||
---
|
|
||||||
keepalived/bfd/bfd_scheduler.c | 2 +-
|
|
||||||
keepalived/check/check_bfd.c | 2 +-
|
|
||||||
keepalived/vrrp/vrrp_scheduler.c | 2 +-
|
|
||||||
lib/scheduler.c | 31 +++++++++++++++++++------------
|
|
||||||
lib/scheduler.h | 3 ++-
|
|
||||||
5 files changed, 24 insertions(+), 16 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/keepalived/bfd/bfd_scheduler.c b/keepalived/bfd/bfd_scheduler.c
|
|
||||||
index 5c3d0691..d51d420f 100644
|
|
||||||
--- a/keepalived/bfd/bfd_scheduler.c
|
|
||||||
+++ b/keepalived/bfd/bfd_scheduler.c
|
|
||||||
@@ -908,7 +908,7 @@ bfd_receiver_thread(thread_ref_t thread)
|
|
||||||
data->thread_in = NULL;
|
|
||||||
|
|
||||||
/* Ignore THREAD_READ_TIMEOUT */
|
|
||||||
- if (thread->type == THREAD_READY_FD) {
|
|
||||||
+ if (thread->type == THREAD_READY_READ_FD) {
|
|
||||||
if (!bfd_receive_packet(&pkt, fd, bfd_buffer, BFD_BUFFER_SIZE))
|
|
||||||
bfd_handle_packet(&pkt);
|
|
||||||
}
|
|
||||||
diff --git a/keepalived/check/check_bfd.c b/keepalived/check/check_bfd.c
|
|
||||||
index 4bd8af23..f9590c30 100644
|
|
||||||
--- a/keepalived/check/check_bfd.c
|
|
||||||
+++ b/keepalived/check/check_bfd.c
|
|
||||||
@@ -290,7 +290,7 @@ bfd_check_thread(thread_ref_t thread)
|
|
||||||
bfd_thread = thread_add_read(master, bfd_check_thread, NULL,
|
|
||||||
thread->u.f.fd, TIMER_NEVER, false);
|
|
||||||
|
|
||||||
- if (thread->type != THREAD_READY_FD)
|
|
||||||
+ if (thread->type != THREAD_READY_READ_FD)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
while (read(thread->u.f.fd, &evt, sizeof(bfd_event_t)) != -1)
|
|
||||||
diff --git a/keepalived/vrrp/vrrp_scheduler.c b/keepalived/vrrp/vrrp_scheduler.c
|
|
||||||
index 91a4898c..7e6da60a 100644
|
|
||||||
--- a/keepalived/vrrp/vrrp_scheduler.c
|
|
||||||
+++ b/keepalived/vrrp/vrrp_scheduler.c
|
|
||||||
@@ -762,7 +762,7 @@ vrrp_bfd_thread(thread_ref_t thread)
|
|
||||||
bfd_thread = thread_add_read(master, vrrp_bfd_thread, NULL,
|
|
||||||
thread->u.f.fd, TIMER_NEVER, false);
|
|
||||||
|
|
||||||
- if (thread->type != THREAD_READY_FD)
|
|
||||||
+ if (thread->type != THREAD_READY_READ_FD)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
while (read(thread->u.f.fd, &evt, sizeof(bfd_event_t)) != -1)
|
|
||||||
diff --git a/lib/scheduler.c b/lib/scheduler.c
|
|
||||||
index 8fc2a032..3cd7b65a 100644
|
|
||||||
--- a/lib/scheduler.c
|
|
||||||
+++ b/lib/scheduler.c
|
|
||||||
@@ -116,7 +116,8 @@ get_thread_type_str(thread_type_t id)
|
|
||||||
if (id == THREAD_CHILD_TERMINATED) return "CHILD_TERMINATED";
|
|
||||||
if (id == THREAD_TERMINATE_START) return "TERMINATE_START";
|
|
||||||
if (id == THREAD_TERMINATE) return "TERMINATE";
|
|
||||||
- if (id == THREAD_READY_FD) return "READY_FD";
|
|
||||||
+ if (id == THREAD_READY_READ_FD) return "READY_READ_FD";
|
|
||||||
+ if (id == THREAD_READY_WRITE_FD) return "READY_WRITE_FD";
|
|
||||||
if (id == THREAD_READ_ERROR) return "READ_ERROR";
|
|
||||||
if (id == THREAD_WRITE_ERROR) return "WRITE_ERROR";
|
|
||||||
#ifdef USE_SIGNAL_THREADS
|
|
||||||
@@ -859,7 +860,8 @@ thread_destroy_rb(thread_master_t *m, rb_root_cached_t *root)
|
|
||||||
|
|
||||||
if (thread->type == THREAD_READ ||
|
|
||||||
thread->type == THREAD_WRITE ||
|
|
||||||
- thread->type == THREAD_READY_FD ||
|
|
||||||
+ thread->type == THREAD_READY_READ_FD ||
|
|
||||||
+ thread->type == THREAD_READY_WRITE_FD ||
|
|
||||||
thread->type == THREAD_READ_TIMEOUT ||
|
|
||||||
thread->type == THREAD_WRITE_TIMEOUT ||
|
|
||||||
thread->type == THREAD_READ_ERROR ||
|
|
||||||
@@ -1409,14 +1411,18 @@ thread_cancel(thread_ref_t thread_cp)
|
|
||||||
rb_erase_cached(&thread->n, &m->child);
|
|
||||||
rb_erase(&thread->rb_data, &m->child_pid);
|
|
||||||
break;
|
|
||||||
- case THREAD_READY_FD:
|
|
||||||
+ case THREAD_READY_READ_FD:
|
|
||||||
case THREAD_READ_TIMEOUT:
|
|
||||||
+ if (thread->event)
|
|
||||||
+ thread_event_del(thread, THREAD_FL_EPOLL_READ_BIT);
|
|
||||||
+ list_head_del(&thread->next);
|
|
||||||
+ break;
|
|
||||||
+ case THREAD_READY_WRITE_FD:
|
|
||||||
case THREAD_WRITE_TIMEOUT:
|
|
||||||
- if (thread->event) {
|
|
||||||
- rb_erase(&thread->event->n, &m->io_events);
|
|
||||||
- FREE(thread->event);
|
|
||||||
- }
|
|
||||||
- /* ... falls through ... */
|
|
||||||
+ if (thread->event)
|
|
||||||
+ thread_event_del(thread, THREAD_FL_EPOLL_WRITE_BIT);
|
|
||||||
+ list_head_del(&thread->next);
|
|
||||||
+ break;
|
|
||||||
case THREAD_EVENT:
|
|
||||||
case THREAD_READY:
|
|
||||||
#ifdef USE_SIGNAL_THREADS
|
|
||||||
@@ -1735,7 +1741,7 @@ thread_fetch_next_queue(thread_master_t *m)
|
|
||||||
, ev->fd, ep_ev->events);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
- thread_move_ready(m, &m->read, ev->read, THREAD_READY_FD);
|
|
||||||
+ thread_move_ready(m, &m->read, ev->read, THREAD_READY_READ_FD);
|
|
||||||
ev->read = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1746,7 +1752,7 @@ thread_fetch_next_queue(thread_master_t *m)
|
|
||||||
, ev->fd, ep_ev->events);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
- thread_move_ready(m, &m->write, ev->write, THREAD_READY_FD);
|
|
||||||
+ thread_move_ready(m, &m->write, ev->write, THREAD_READY_WRITE_FD);
|
|
||||||
ev->write = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1804,7 +1810,8 @@ process_threads(thread_master_t *m)
|
|
||||||
* snmp_read, bfd_receiver, bfd pipe in vrrp/check, dbus pipe or netlink fds. */
|
|
||||||
thread = thread_trim_head(thread_list);
|
|
||||||
if (!shutting_down ||
|
|
||||||
- (thread->type == THREAD_READY_FD &&
|
|
||||||
+ ((thread->type == THREAD_READY_READ_FD ||
|
|
||||||
+ thread->type == THREAD_READY_WRITE_FD) &&
|
|
||||||
(thread->u.f.fd == m->timer_fd ||
|
|
||||||
thread->u.f.fd == m->signal_fd
|
|
||||||
#ifdef _WITH_SNMP_
|
|
||||||
@@ -1823,7 +1830,7 @@ process_threads(thread_master_t *m)
|
|
||||||
shutting_down = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
- m->current_event = (thread->type == THREAD_READY_FD) ? thread->event : NULL;
|
|
||||||
+ m->current_event = (thread->type == THREAD_READY_READ_FD || thread->type == THREAD_READY_WRITE_FD) ? thread->event : NULL;
|
|
||||||
thread_type = thread->type;
|
|
||||||
thread_add_unuse(master, thread);
|
|
||||||
|
|
||||||
diff --git a/lib/scheduler.h b/lib/scheduler.h
|
|
||||||
index 69324fe0..fea99cd0 100644
|
|
||||||
--- a/lib/scheduler.h
|
|
||||||
+++ b/lib/scheduler.h
|
|
||||||
@@ -56,7 +56,8 @@ typedef enum {
|
|
||||||
THREAD_CHILD_TERMINATED,
|
|
||||||
THREAD_TERMINATE_START,
|
|
||||||
THREAD_TERMINATE,
|
|
||||||
- THREAD_READY_FD,
|
|
||||||
+ THREAD_READY_READ_FD,
|
|
||||||
+ THREAD_READY_WRITE_FD,
|
|
||||||
THREAD_READ_ERROR,
|
|
||||||
THREAD_WRITE_ERROR,
|
|
||||||
#ifdef USE_SIGNAL_THREADS
|
|
||||||
--
|
|
||||||
2.23.0
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
|||||||
From 23a5b8113bf0b8ec4718443df0406882e8e4d831 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Quentin Armitage <quentin@armitage.org.uk>
|
|
||||||
Date: Sat, 9 Nov 2019 10:07:48 +0000
|
|
||||||
Subject: [PATCH] Fix track_process with PIDs > 32767
|
|
||||||
|
|
||||||
Signed-off-by: Quentin Armitage <quentin@armitage.org.uk>
|
|
||||||
---
|
|
||||||
keepalived/core/track_process.c | 4 ++--
|
|
||||||
lib/scheduler.c | 2 +-
|
|
||||||
2 files changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/keepalived/core/track_process.c b/keepalived/core/track_process.c
|
|
||||||
index 550254b1..76ff6009 100644
|
|
||||||
--- a/keepalived/core/track_process.c
|
|
||||||
+++ b/keepalived/core/track_process.c
|
|
||||||
@@ -341,7 +341,7 @@ check_process(pid_t pid, char *comm, tracked_process_instance_t *tpi)
|
|
||||||
* swapped in to read it. */
|
|
||||||
if (!have_comm) {
|
|
||||||
if (vrrp_data->vrrp_use_process_cmdline) {
|
|
||||||
- snprintf(cmdline, sizeof(cmdline), "/proc/%hd/cmdline", pid);
|
|
||||||
+ snprintf(cmdline, sizeof(cmdline), "/proc/%d/cmdline", pid);
|
|
||||||
|
|
||||||
if ((fd = open(cmdline, O_RDONLY)) == -1)
|
|
||||||
return;
|
|
||||||
@@ -358,7 +358,7 @@ check_process(pid_t pid, char *comm, tracked_process_instance_t *tpi)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (vrrp_data->vrrp_use_process_comm) {
|
|
||||||
- snprintf(cmdline, sizeof(cmdline), "/proc/%hd/comm", pid);
|
|
||||||
+ snprintf(cmdline, sizeof(cmdline), "/proc/%d/comm", pid);
|
|
||||||
|
|
||||||
fd = open(cmdline, O_RDONLY);
|
|
||||||
if (fd == -1) {
|
|
||||||
diff --git a/lib/scheduler.c b/lib/scheduler.c
|
|
||||||
index 3cd7b65a..de92c7d4 100644
|
|
||||||
--- a/lib/scheduler.c
|
|
||||||
+++ b/lib/scheduler.c
|
|
||||||
@@ -441,7 +441,7 @@ report_child_status(int status, pid_t pid, char const *prog_name)
|
|
||||||
prog_id = child_finder_name(pid);
|
|
||||||
|
|
||||||
if (!prog_id) {
|
|
||||||
- snprintf(pid_buf, sizeof(pid_buf), "pid %hd", pid);
|
|
||||||
+ snprintf(pid_buf, sizeof(pid_buf), "pid %d", pid);
|
|
||||||
prog_id = pid_buf;
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
2.23.0
|
|
||||||
|
|
@ -10,16 +10,13 @@
|
|||||||
Name: keepalived
|
Name: keepalived
|
||||||
Summary: High Availability monitor built upon LVS, VRRP and service pollers
|
Summary: High Availability monitor built upon LVS, VRRP and service pollers
|
||||||
Version: 2.0.20
|
Version: 2.0.20
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
URL: http://www.keepalived.org/
|
URL: http://www.keepalived.org/
|
||||||
|
|
||||||
Source0: http://www.keepalived.org/software/keepalived-%{version}.tar.gz
|
Source0: http://www.keepalived.org/software/keepalived-%{version}.tar.gz
|
||||||
Source1: keepalived.service
|
Source1: keepalived.service
|
||||||
|
|
||||||
Patch0: keepalived-fix-track_process-with-pids-32767.patch
|
|
||||||
Patch1: keepalived-fix-file-descriptor-errors-on-reload.patch
|
|
||||||
|
|
||||||
Requires(post): systemd
|
Requires(post): systemd
|
||||||
Requires(preun): systemd
|
Requires(preun): systemd
|
||||||
Requires(postun): systemd
|
Requires(postun): systemd
|
||||||
@ -54,8 +51,6 @@ infrastructures.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch0 -p1
|
|
||||||
%patch1 -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%configure \
|
%configure \
|
||||||
@ -105,7 +100,10 @@ mkdir -p %{buildroot}%{_libexecdir}/keepalived
|
|||||||
%{_mandir}/man8/keepalived.8*
|
%{_mandir}/man8/keepalived.8*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Wed Feb 12 2019 Ryan O'Hara <rohara@redhat.com> - 2.0.20-1
|
* Thu Feb 13 2020 Ryan O'Hara <rohara@redhat.com> - 2.0.20-2
|
||||||
|
- Remove unused patches
|
||||||
|
|
||||||
|
* Wed Feb 12 2020 Ryan O'Hara <rohara@redhat.com> - 2.0.20-1
|
||||||
- Update to 2.0.20 (#1794135)
|
- Update to 2.0.20 (#1794135)
|
||||||
|
|
||||||
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.19-5
|
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.19-5
|
||||||
|
Loading…
Reference in New Issue
Block a user