summaryrefslogtreecommitdiff
path: root/poky/bitbake/bin/bitbake-worker
diff options
context:
space:
mode:
Diffstat (limited to 'poky/bitbake/bin/bitbake-worker')
-rwxr-xr-xpoky/bitbake/bin/bitbake-worker16
1 files changed, 11 insertions, 5 deletions
diff --git a/poky/bitbake/bin/bitbake-worker b/poky/bitbake/bin/bitbake-worker
index 115bc1d091..7fde688764 100755
--- a/poky/bitbake/bin/bitbake-worker
+++ b/poky/bitbake/bin/bitbake-worker
@@ -287,10 +287,12 @@ def fork_off_task(cfg, data, databuilder, workerdata, fn, task, taskname, taskha
try:
if dry_run:
return 0
- ret = bb.build.exec_task(fn, taskname, the_data, cfg.profile)
- if fakeroot:
- fakerootcmd = shlex.split(the_data.getVar("FAKEROOTCMD"))
- subprocess.run(fakerootcmd + ['-S'], check=True, stdout=subprocess.PIPE)
+ try:
+ ret = bb.build.exec_task(fn, taskname, the_data, cfg.profile)
+ finally:
+ if fakeroot:
+ fakerootcmd = shlex.split(the_data.getVar("FAKEROOTCMD"))
+ subprocess.run(fakerootcmd + ['-S'], check=True, stdout=subprocess.PIPE)
return ret
except:
os._exit(1)
@@ -415,7 +417,11 @@ class BitbakeWorker(object):
if self.queue.startswith(b"<" + item + b">"):
index = self.queue.find(b"</" + item + b">")
while index != -1:
- func(self.queue[(len(item) + 2):index])
+ try:
+ func(self.queue[(len(item) + 2):index])
+ except pickle.UnpicklingError:
+ workerlog_write("Unable to unpickle data: %s\n" % ":".join("{:02x}".format(c) for c in self.queue))
+ raise
self.queue = self.queue[(index + len(item) + 3):]
index = self.queue.find(b"</" + item + b">")