summaryrefslogtreecommitdiffstats
path: root/lib/bb/runqueue.py
diff options
context:
space:
mode:
authorMartin Jansa <martin.jansa@gmail.com>2014-02-23 11:02:18 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-02-24 11:42:26 +0000
commita69eb4c12c71bba9d742c4e5578f25c388d9f825 (patch)
tree144f001628307eb3a622c7fb1f3395e4e65ca9c1 /lib/bb/runqueue.py
parent537f1f9bbe110acc9848ef95f43468c07d87af79 (diff)
downloadopenembedded-core-contrib-a69eb4c12c71bba9d742c4e5578f25c388d9f825.tar.gz
runqueue: Catch ValueError from pickle.loads
* exception like this keeps spinning quite quickly generating GBs of logs better to kill it asap and show invalid pickle Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/bb/runqueue.py')
-rw-r--r--lib/bb/runqueue.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/bb/runqueue.py b/lib/bb/runqueue.py
index 413d59f8f4..bc48684d78 100644
--- a/lib/bb/runqueue.py
+++ b/lib/bb/runqueue.py
@@ -2092,14 +2092,20 @@ class runQueuePipe():
found = False
index = self.queue.find("</event>")
while index != -1 and self.queue.startswith("<event>"):
- event = pickle.loads(self.queue[7:index])
+ try:
+ event = pickle.loads(self.queue[7:index])
+ except ValueError as e:
+ bb.msg.fatal("RunQueue", "failed load pickle '%s': '%s'" % (e, self.queue[7:index]))
bb.event.fire_from_worker(event, self.d)
found = True
self.queue = self.queue[index+8:]
index = self.queue.find("</event>")
index = self.queue.find("</exitcode>")
while index != -1 and self.queue.startswith("<exitcode>"):
- task, status = pickle.loads(self.queue[10:index])
+ try:
+ task, status = pickle.loads(self.queue[10:index])
+ except ValueError as e:
+ bb.msg.fatal("RunQueue", "failed load pickle '%s': '%s'" % (e, self.queue[10:index]))
self.rq.runqueue_process_waitpid(task, status)
found = True
self.queue = self.queue[index+11:]