Skip to content

Commit 2c170d5

Browse files
authored
Merge pull request #2034 from VallariAg/fix-locked-grace-period
lock/query.py: add grace_time param to node_active_job()
2 parents 3774177 + e510a84 commit 2c170d5

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

teuthology/lock/query.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,17 +127,18 @@ def might_be_stale(node_dict):
127127
# running
128128
result = list()
129129
for node in nodes:
130-
if node_active_job(node["name"]):
130+
if node_active_job(node["name"], grace_time=5):
131131
continue
132132
result.append(node)
133133
return result
134134

135-
def node_active_job(name: str, status: Union[dict, None] = None) -> Union[str, None]:
135+
def node_active_job(name: str, status: Union[dict, None] = None, grace_time: int = 0) -> Union[str, None]:
136136
"""
137137
Is this node's job active (e.g. running or waiting)?
138138
139139
:param node: The node dict as returned from the lock server
140140
:param cache: A set() used for caching results
141+
:param grace: A period of time (in mins) after job finishes before we consider the node inactive
141142
:returns: A string if the node has an active job, or None if not
142143
"""
143144
status = status or get_status(name)
@@ -167,9 +168,11 @@ def node_active_job(name: str, status: Union[dict, None] = None) -> Union[str, N
167168
if active:
168169
break
169170
job_updated = job_obj["updated"]
171+
if not grace_time:
172+
break
170173
try:
171174
delta = datetime.datetime.now(datetime.timezone.utc) - parse_timestamp(job_updated)
172-
active = active or delta < datetime.timedelta(minutes=5)
175+
active = active or delta < datetime.timedelta(minutes=grace_time)
173176
except Exception:
174177
log.exception(f"{run_name}/{job_id} updated={job_updated}")
175178
break

0 commit comments

Comments
 (0)