summaryrefslogtreecommitdiffstats
path: root/meta/lib/oeqa
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2019-05-01 08:00:00 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-05-20 14:38:16 +0100
commit7af49cc6b04d653e3775230172d6dc3c349de123 (patch)
treecaf5add633bfd36d102f88950a6c63a4657cf9ae /meta/lib/oeqa
parent0fd7c08b2e91672efb87a98951f33b170f6fbb92 (diff)
downloadpoky-7af49cc6b04d653e3775230172d6dc3c349de123.tar.gz
oeqa/ssh: Avoid unicode decode exceptions
This code really needs to be rewritten to not split potential multibyte characters, for now work around it to avoid exceptions like: File "/home/pokybuild/yocto-worker/qa-extras2/build/meta/lib/oeqa/core/target/ssh.py", line 211, in run data = reader.read(1024, 4096) File "/usr/lib64/python3.6/codecs.py", line 503, in read newchars, decodedbytes = self.decode(data, self.errors) UnicodeDecodeError: 'utf-8' codec can't decode byte 0x92 in position 0: invalid start byte (From OE-Core rev: 918e15e22c797d52d33c3399324e480aa1a2cc7f) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oeqa')
-rw-r--r--meta/lib/oeqa/core/target/ssh.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/meta/lib/oeqa/core/target/ssh.py b/meta/lib/oeqa/core/target/ssh.py
index 8ff1f6c677..2adbb3000c 100644
--- a/meta/lib/oeqa/core/target/ssh.py
+++ b/meta/lib/oeqa/core/target/ssh.py
@@ -207,7 +207,7 @@ def SSHCall(command, logger, timeout=None, **opts):
207 logger.debug('time: %s, endtime: %s' % (time.time(), endtime)) 207 logger.debug('time: %s, endtime: %s' % (time.time(), endtime))
208 try: 208 try:
209 if select.select([process.stdout], [], [], 5)[0] != []: 209 if select.select([process.stdout], [], [], 5)[0] != []:
210 reader = codecs.getreader('utf-8')(process.stdout) 210 reader = codecs.getreader('utf-8')(process.stdout, 'surrogatepass')
211 data = reader.read(1024, 4096) 211 data = reader.read(1024, 4096)
212 if not data: 212 if not data:
213 process.stdout.close() 213 process.stdout.close()
@@ -234,7 +234,7 @@ def SSHCall(command, logger, timeout=None, **opts):
234 output += lastline 234 output += lastline
235 235
236 else: 236 else:
237 output = process.communicate()[0].decode("utf-8", errors='replace') 237 output = process.communicate()[0].decode("utf-8", errors='surrogatepass')
238 logger.debug('Data from SSH call: %s' % output.rstrip()) 238 logger.debug('Data from SSH call: %s' % output.rstrip())
239 239
240 options = { 240 options = {