Add upstream patch f222df3081d965051be76b85ea52b4aff222edf1
"plugins/open: Fix for interrupted select" Preparation for applying patch 51634fd77c836e3cb5acd9b9b72e7ede20321d56 Related: rhbz2224569
This commit is contained in:
parent
90d168970c
commit
cc1648ef0c
33
0020-plugins-open-Fix-for-interrupted-select.patch
Normal file
33
0020-plugins-open-Fix-for-interrupted-select.patch
Normal file
@ -0,0 +1,33 @@
|
||||
From f222df3081d965051be76b85ea52b4aff222edf1 Mon Sep 17 00:00:00 2001
|
||||
From: "William A. Kennington III" <wak@google.com>
|
||||
Date: Fri, 15 Jun 2018 14:47:12 -0700
|
||||
Subject: [PATCH] plugins/open: Fix for interrupted select
|
||||
|
||||
The select syscall can be interrupted for signals like SIGPROF. The IPMI
|
||||
command sent will still be outstanding but the send_command will return
|
||||
an error. When the next command is sent it will get the completion for
|
||||
the previous command and has the tendency to break state of end users.
|
||||
|
||||
Signed-off-by: William A. Kennington III <wak@google.com>
|
||||
---
|
||||
src/plugins/open/open.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/plugins/open/open.c b/src/plugins/open/open.c
|
||||
index 5beeac7..59b736d 100644
|
||||
--- a/src/plugins/open/open.c
|
||||
+++ b/src/plugins/open/open.c
|
||||
@@ -335,7 +335,9 @@ ipmi_openipmi_send_cmd(struct ipmi_intf * intf, struct ipmi_rq * req)
|
||||
FD_SET(intf->fd, &rset);
|
||||
read_timeout.tv_sec = IPMI_OPENIPMI_READ_TIMEOUT;
|
||||
read_timeout.tv_usec = 0;
|
||||
- retval = select(intf->fd+1, &rset, NULL, NULL, &read_timeout);
|
||||
+ do {
|
||||
+ retval = select(intf->fd+1, &rset, NULL, NULL, &read_timeout);
|
||||
+ } while (retval < 0 && errno == EINTR);
|
||||
if (retval < 0) {
|
||||
lperror(LOG_ERR, "I/O Error");
|
||||
if (data != NULL) {
|
||||
--
|
||||
2.40.1
|
||||
|
Loading…
Reference in New Issue
Block a user