From 7eea22a7cdb28792f6e76823558dff8de9f2f039 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 3 Mar 2025 11:58:57 +0000 Subject: bitbake: utils: Add signal blocking for lock_timeout We never want to exit whilst holding these locks as it deadlocks all python threads. Add signal blocking around the lock critical part so a signal shouldn't cause such an exit. (Bitbake rev: 5cc1dde1ffd9382b3a9e4cc182be067defba16a7) Signed-off-by: Richard Purdie (cherry picked from commit a097755c671e2b530dea6200a94b39fa9dca246c) Signed-off-by: Steve Sakoman --- bitbake/lib/bb/utils.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'bitbake/lib/bb/utils.py') diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py index 83e832c336..da026fe5bf 100644 --- a/bitbake/lib/bb/utils.py +++ b/bitbake/lib/bb/utils.py @@ -1860,6 +1860,7 @@ def path_is_descendant(descendant, ancestor): @contextmanager def lock_timeout(lock): try: + s = signal.pthread_sigmask(signal.SIG_BLOCK, signal.valid_signals()) held = lock.acquire(timeout=5*60) if not held: bb.server.process.serverlog("Couldn't get the lock for 5 mins, timed out, exiting.\n%s" % traceback.format_stack()) @@ -1867,3 +1868,4 @@ def lock_timeout(lock): yield held finally: lock.release() + signal.pthread_sigmask(signal.SIG_SETMASK, s) -- cgit v1.2.3-54-g00ecf