From ce50594d709f473fbad30e187565531af6714aaa Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sat, 16 Apr 2022 09:17:10 -1000 Subject: bitbake: server/process: Disable gc around critical section The python gc can trigger whilst we're holding the event stream lock and when cleaning up objects, they can trigger warnings. This translates into a new event which would then need the lock and we can deadlock. Disable gc whilst we hold that lock to avoid this unfortunate and problematic situation. (Bitbake rev: 0784db7dd0fef6f0621ad8d74372f44e87fef950) Signed-off-by: Richard Purdie (cherry picked from commit 96a6303949cefd469bcf5ed250ff512271354357) Signed-off-by: Steve Sakoman Signed-off-by: Richard Purdie --- bitbake/lib/bb/server/process.py | 3 +++ 1 file changed, 3 insertions(+) (limited to 'bitbake/lib') diff --git a/bitbake/lib/bb/server/process.py b/bitbake/lib/bb/server/process.py index 3c9ed70689..4bdb84ae37 100644 --- a/bitbake/lib/bb/server/process.py +++ b/bitbake/lib/bb/server/process.py @@ -25,6 +25,7 @@ import subprocess import errno import re import datetime +import gc import bb.server.xmlrpcserver from bb import daemonize from multiprocessing import queues @@ -671,8 +672,10 @@ class ConnectionWriter(object): def send(self, obj): obj = multiprocessing.reduction.ForkingPickler.dumps(obj) + gc.disable() with self.wlock: self.writer.send_bytes(obj) + gc.enable() def fileno(self): return self.writer.fileno() -- cgit v1.2.3-54-g00ecf