From: Richard Purdie Date: Sat, 30 Mar 2024 18:08:15 +0000 (+0000) Subject: oeqa/sstatetests: Fix race issue X-Git-Tag: 2024-04-scarthgap~70 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8cfc94a4404c54bc73eab9f98d9da1f84c2135ad;p=thirdparty%2Fopenembedded%2Fopenembedded-core.git oeqa/sstatetests: Fix race issue Under some load conditions, the result event can come back before the command complete event. If that happens, the code would hang indefinitely. Rework the code to wait for both events and avoid the hang. Signed-off-by: Richard Purdie --- diff --git a/meta/lib/oeqa/selftest/cases/sstatetests.py b/meta/lib/oeqa/selftest/cases/sstatetests.py index e2f509c3e83..86d6cd7464f 100644 --- a/meta/lib/oeqa/selftest/cases/sstatetests.py +++ b/meta/lib/oeqa/selftest/cases/sstatetests.py @@ -772,15 +772,16 @@ addtask tmptask2 before do_tmptask1 def find_siginfo(pn, taskname, sigs=None): result = None + command_complete = False tinfoil.set_event_mask(["bb.event.FindSigInfoResult", "bb.command.CommandCompleted"]) ret = tinfoil.run_command("findSigInfo", pn, taskname, sigs) if ret: - while True: + while result is None or not command_complete: event = tinfoil.wait_event(1) if event: if isinstance(event, bb.command.CommandCompleted): - break + command_complete = True elif isinstance(event, bb.event.FindSigInfoResult): result = event.result return result