Masahiro Tanaka created AMBARI-17245: ----------------------------------------
Summary: Failed Hive metastore start due to UnicodeDecodeError Key: AMBARI-17245 URL: https://issues.apache.org/jira/browse/AMBARI-17245 Project: Ambari Issue Type: Bug Components: ambari-server Affects Versions: trunk Environment: CentOS6.5, LANG=ja_JP.UTF-8 Reporter: Masahiro Tanaka Assignee: Masahiro Tanaka When we start hivemestore in the environment described above, we got an error {code} Traceback (most recent call last): File "/var/lib/ambari-agent/cache/common-services/HIVE/0.12.0.2.0/package/scripts/hive_metastore.py", line 254, in <module> HiveMetastore().execute() File "/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py", line 257, in execute method(env) File "/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py", line 686, in restart self.start(env, upgrade_type=upgrade_type) File "/var/lib/ambari-agent/cache/common-services/HIVE/0.12.0.2.0/package/scripts/hive_metastore.py", line 61, in start hive_service('metastore', action='start', upgrade_type=upgrade_type) File "/usr/lib/python2.6/site-packages/ambari_commons/os_family_impl.py", line 89, in thunk return fn(*args, **kwargs) File "/var/lib/ambari-agent/cache/common-services/HIVE/0.12.0.2.0/package/scripts/hive_service.py", line 70, in hive_service pid = get_user_call_output.get_user_call_output(format("cat {pid_file}"), user=params.hive_user, is_checked_call=False)[1] File "/usr/lib/python2.6/site-packages/resource_management/libraries/functions/get_user_call_output.py", line 59, in get_user_call_output err_msg = Logger.filter_text(("Execution of '%s' returned %d. %s") % (command_string, code, all_output)) File "/usr/lib/python2.6/site-packages/resource_management/core/logger.py", line 101, in filter_text text = text.replace(unprotected_string, protected_string) UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 117: ordinal not in range(128) {code} I think the reason why this error occurs is because "/usr/lib/python2.6/site-packages/resource_management/libraries/functions/get_user_call_output.py". This script calls system command (e.g. {{cat}}), writes stdout & stderr in the tempfile, and read it. The outputs (stdout, stderr) are in UTF-8 encoded Japanese in the above environment. When reading string from file, python regards the file as ASCII encoded by default. But if the file is utf-8 encoded, this causes an error. We should decode UTF-8 when reading the file. -- This message was sent by Atlassian JIRA (v6.3.4#6332)