2
0
mirror of https://github.com/xcat2/confluent.git synced 2025-02-23 14:01:28 +00:00

Auto-repair 'login process died' condition

The cause is still unknown, but we should be able to at least
repair automatically.
This commit is contained in:
Jarrod Johnson 2019-06-24 16:34:56 -04:00
parent 8ed2d5a551
commit ffe9606de1
2 changed files with 7 additions and 6 deletions

View File

@ -26,7 +26,7 @@ def lookupdata(data, key):
def main():
argparser = optparse.OptionParser(
usage='''\n %prog noderange -o xcatnodes.def
usage='''\n %prog noderange -o xcatnodes.def
\n ''')
argparser.add_option('-o', '--output',
help='xCAT stanza file')

View File

@ -462,7 +462,7 @@ class IpmiHandler(object):
self.inputdata = inputdata
self.tenant = cfg.tenant
tenant = cfg.tenant
if ((node, tenant) not in persistent_ipmicmds or
while ((node, tenant) not in persistent_ipmicmds or
not persistent_ipmicmds[(node, tenant)].ipmi_session.logged or
persistent_ipmicmds[(node, tenant)].ipmi_session.broken):
try:
@ -481,10 +481,11 @@ class IpmiHandler(object):
while ((not (self.broken or self.loggedin)) and
(util.monotonic_time() - begin) < 30):
ipmisess.wait_for_rsp(31 - (util.monotonic_time() - begin))
if not (self.broken or self.loggedin):
ipmisess._mark_broken()
raise exc.TargetEndpointUnreachable(
"Login process to " + connparams['bmc'] + " died")
if self.broken or self.loggedin:
break
ipmisess._mark_broken()
# raise exc.TargetEndpointUnreachable(
# "Login process to " + connparams['bmc'] + " died")
except socket.gaierror as ge:
if ge[0] == -2:
raise exc.TargetEndpointUnreachable(ge[1])