From 54439d5f186a8f4ab400fe83075e59247f7d797a Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Mon, 1 Jul 2019 09:05:08 -0400 Subject: [PATCH] Fix cause of former 'login process died' If a session died without calling logged, the confluent plugin instance would be orphaned. Detect this situation to trigger a retry. --- confluent_server/confluent/plugins/hardwaremanagement/ipmi.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py b/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py index 2d63294a..df99a328 100644 --- a/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py +++ b/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py @@ -467,6 +467,7 @@ class IpmiHandler(object): persistent_ipmicmds[(node, tenant)].ipmi_session.broken): try: persistent_ipmicmds[(node, tenant)].close_confluent() + persistent_ipmicmds[(node, tenant)].ipmi_session._mark_broken() except KeyError: # was no previous session pass try: @@ -478,7 +479,7 @@ class IpmiHandler(object): ipmisess = persistent_ipmicmds[(node, tenant)].ipmi_session begin = util.monotonic_time() - while ((not (self.broken or self.loggedin)) and + while ((not (ipmisess.broken or self.loggedin)) and (util.monotonic_time() - begin) < 30): ipmisess.wait_for_rsp(31 - (util.monotonic_time() - begin)) if self.broken or self.loggedin: