[Kimchi-devel] [PATCH][Wok] Issue #121: Unicode error in wok.utils.run_command if cmd & error has non-ascii characters
archus at linux.vnet.ibm.com
archus at linux.vnet.ibm.com
Mon May 30 11:17:42 UTC 2016
From: Archana Singh <archus at linux.vnet.ibm.com>
If command to be run has any non-ascii characters(encoded/unicode value),
then the error message might also contain non-ascii characters(encoded/unicode value).
If command has encoded value and error has unicode value then combining both
into a string result unicode value which will have encoded value result into UnicodeError.
For e.g
command: u'modinfo -0 \xe1'
error: modinfo: ERROR: Module \xc3\xa1 not found. (Note:- It has encoded value of u'\xe1')
Combining both into string message:
"error: %s returned from cmd: %s"%(error, ' '.join(cmd)) result into
UnicodeDecodeError: UnicodeDecodeError('ascii', 'error: modinfo:
ERROR: Module \xc3\xa1 not found.\n returned from cmd: ', 30, 31, 'ordinal not in range(128)')
Fixed this by converting both to unicode format before combining into message.
Signed-off-by: Archana Singh <archus at linux.vnet.ibm.com>
---
src/wok/utils.py | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/wok/utils.py b/src/wok/utils.py
index b37518f..918fd26 100644
--- a/src/wok/utils.py
+++ b/src/wok/utils.py
@@ -273,7 +273,8 @@ def run_command(cmd, timeout=None, silent=False, tee=None,
returncode = proc.returncode
if returncode != 0:
msg = "rc: %s error: %s returned from cmd: %s" %\
- (returncode, error, ' '.join(cmd))
+ (returncode, decode_value(error),
+ decode_value(' '.join(cmd)))
if silent:
wok_log.debug(msg)
@@ -282,7 +283,7 @@ def run_command(cmd, timeout=None, silent=False, tee=None,
wok_log.error(msg)
elif error:
wok_log.debug("error: %s returned from cmd: %s",
- error, ' '.join(cmd))
+ decode_value(error), decode_value(' '.join(cmd)))
if timeout_flag[0]:
msg = ("subprocess is killed by signal.SIGKILL for "
--
2.5.0
More information about the Kimchi-devel
mailing list