Signed-off-by: Jan Friesse <[email protected]>
---
exec/votequorum.c | 37 +++++++++++++++++++++++++------------
1 files changed, 25 insertions(+), 12 deletions(-)
diff --git a/exec/votequorum.c b/exec/votequorum.c
index 4c3532c..84206c0 100644
--- a/exec/votequorum.c
+++ b/exec/votequorum.c
@@ -1924,8 +1924,16 @@ static int votequorum_sync_process (void)
votequorum_exec_send_nodeinfo(us->node_id);
votequorum_exec_send_nodeinfo(VOTEQUORUM_QDEVICE_NODEID);
if (strlen(qdevice_name)) {
-
votequorum_exec_send_qdevice_reg(VOTEQUORUM_QDEVICE_OPERATION_REGISTER,
- qdevice_name);
+ if
(votequorum_exec_send_qdevice_reg(VOTEQUORUM_QDEVICE_OPERATION_REGISTER,
+ qdevice_name) != 0) {
+ /*
+ * There is no easy way how to handle
+ * votequorum_exec_send_qdevice_reg failure in
sync_process, but
+ * user should be at least informed.
+ */
+ log_printf(LOGSYS_LEVEL_WARNING,
+ "Unable to send qdevice registration request
to cluster");
+ }
}
return 0;
}
@@ -2357,17 +2365,22 @@ static void
message_handler_req_lib_votequorum_qdevice_unregister (void *conn,
error = CS_ERR_INVALID_PARAM;
goto out;
}
- if (qdevice_timer_set) {
- corosync_api->timer_delete(qdevice_timer);
- qdevice_timer_set = 0;
- }
- us->flags &= ~NODE_FLAGS_QDEVICE_REGISTERED;
- us->flags &= ~NODE_FLAGS_QDEVICE_ALIVE;
- us->flags &= ~NODE_FLAGS_QDEVICE_CAST_VOTE;
- us->flags &= ~NODE_FLAGS_QDEVICE_MASTER_WINS;
votequorum_exec_send_nodeinfo(us->node_id);
-
votequorum_exec_send_qdevice_reg(VOTEQUORUM_QDEVICE_OPERATION_UNREGISTER,
-
req_lib_votequorum_qdevice_unregister->name);
+ if
(votequorum_exec_send_qdevice_reg(VOTEQUORUM_QDEVICE_OPERATION_UNREGISTER,
+
req_lib_votequorum_qdevice_unregister->name) != 0) {
+ log_printf(LOGSYS_LEVEL_WARNING,
+ "Unable to send qdevice unregistration
request to cluster");
+ error = CS_ERR_TRY_AGAIN;
+ } else {
+ if (qdevice_timer_set) {
+ corosync_api->timer_delete(qdevice_timer);
+ qdevice_timer_set = 0;
+ }
+ us->flags &= ~NODE_FLAGS_QDEVICE_REGISTERED;
+ us->flags &= ~NODE_FLAGS_QDEVICE_ALIVE;
+ us->flags &= ~NODE_FLAGS_QDEVICE_CAST_VOTE;
+ us->flags &= ~NODE_FLAGS_QDEVICE_MASTER_WINS;
+ }
} else {
error = CS_ERR_NOT_EXIST;
}
--
1.7.1
_______________________________________________
discuss mailing list
[email protected]
http://lists.corosync.org/mailman/listinfo/discuss