[ https://issues.apache.org/jira/browse/AMBARI-17245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15377317#comment-15377317 ]
Masahiro Tanaka commented on AMBARI-17245: ------------------------------------------ Thanks [~swagle] and [~aonishuk]! > Failed to start Hive metastore 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 > Fix For: 2.4.0 > > Attachments: AMBARI-17245.patch > > > 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)