You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ambari.apache.org by "Philippe Kernevez (JIRA)" <ji...@apache.org> on 2015/01/29 14:19:34 UTC

[jira] [Commented] (AMBARI-9396) Can't have the original error a Oozie service check when the error contain non utf-8 chars

    [ https://issues.apache.org/jira/browse/AMBARI-9396?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14296821#comment-14296821 ] 

Philippe Kernevez commented on AMBARI-9396:
-------------------------------------------

There isn't an original error in fact. The error was just raise by logging a non UTF-8 char.

The non UTF-8 message was comming from the script /var/lib/ambari-agent/data/tmp/oozieSmoke2.sh (line 81)
export OOZIE_EXAMPLES_DIR=`$LIST_PACKAGE_FILES_CMD oozie-client | grep 'oozie-examples.tar.gz$' | xargs dirname`

In French :
{code}
$ export LANG=fr_FR.UTF-8
$ dirname
dirname: opérande manquant
Saisissez « dirname --help » pour plus d'informations.
{code}
In English :
{code}
$ export LANG=en_EN.UTF-8
$ dirname
dirname: missing operand
Try `dirname --help' for more information.
{code}

> Can't have the original error a Oozie service check when the error contain non utf-8 chars
> ------------------------------------------------------------------------------------------
>
>                 Key: AMBARI-9396
>                 URL: https://issues.apache.org/jira/browse/AMBARI-9396
>             Project: Ambari
>          Issue Type: Bug
>          Components: ambari-server
>    Affects Versions: 1.7.0
>         Environment: CentOS + HDP 2.2 
> Default encoding fr_ch.UTF-8
>            Reporter: Philippe Kernevez
>         Attachments: patch1.diff, patch2.diff
>
>
> When I run Oozie service check I had a failure that is due to the logger that can't manage non utf-8 char.
> The failure I had : 
> {code}
> Traceback (most recent call last):
>   File "/var/lib/ambari-agent/cache/stacks/HDP/2.0.6/services/OOZIE/package/scripts/service_check.py", line 59, in <module>
>     OozieServiceCheck().execute()
>   File "/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py", line 123, in execute
>     method(env)
>   File "/var/lib/ambari-agent/cache/stacks/HDP/2.0.6/services/OOZIE/package/scripts/service_check.py", line 31, in service_check
>     oozie_smoke_shell_file( smoke_test_file_name)
>   File "/var/lib/ambari-agent/cache/stacks/HDP/2.0.6/services/OOZIE/package/scripts/service_check.py", line 55, in oozie_smoke_shell_file
>     logoutput = True
>   File "/usr/lib/python2.6/site-packages/resource_management/core/base.py", line 148, in __init__
>     self.env.run()
>   File "/usr/lib/python2.6/site-packages/resource_management/core/environment.py", line 149, in run
>     self.run_action(resource, action)
>   File "/usr/lib/python2.6/site-packages/resource_management/core/environment.py", line 115, in run_action
>     provider_action()
>   File "/usr/lib/python2.6/site-packages/resource_management/core/providers/system.py", line 237, in action_run
>     path=self.resource.path)
>   File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", line 36, in checked_call
>     return _call(command, logoutput, True, cwd, env, preexec_fn, user, wait_for_finish, timeout, path)
>   File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", line 101, in _call
>     err_msg = Logger.get_protected_text(("Execution of '%s' returned %d. %s") % (command, code, out))
> UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 11: ordinal not in range(128)
> {code}
> When I changed the file shell.py line 101 :
> {code}
> --- /usr/lib/python2.6/site-packages/resource_management/core/shell.py.back	2015-01-29 11:33:09.576977676 +0100
> +++ /usr/lib/python2.6/site-packages/resource_management/core/shell.py	2015-01-29 11:46:41.957279179 +0100
> @@ -98,7 +98,7 @@
>      Logger.info(out)
>    
>    if throw_on_failure and code:
> -    err_msg = Logger.get_protected_text(("Execution of '%s' returned %d. %s") % (command, code, out))
> +    err_msg = Logger.get_protected_text(("Execution of '%s' returned %d. %s") % (command, code, out.decode('utf-8')))
>      raise Fail(err_msg)
>    
>    return code, out
> {code}
> With that change, I had another error just after :
> {code}
> Traceback (most recent call last):
>   File "/var/lib/ambari-agent/cache/stacks/HDP/2.0.6/services/OOZIE/package/scripts/service_check.py", line 59, in <module>
>     OozieServiceCheck().execute()
>   File "/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py", line 123, in execute
>     method(env)
>   File "/var/lib/ambari-agent/cache/stacks/HDP/2.0.6/services/OOZIE/package/scripts/service_check.py", line 31, in service_check
>     oozie_smoke_shell_file( smoke_test_file_name)
>   File "/var/lib/ambari-agent/cache/stacks/HDP/2.0.6/services/OOZIE/package/scripts/service_check.py", line 55, in oozie_smoke_shell_file
>     logoutput = True
>   File "/usr/lib/python2.6/site-packages/resource_management/core/base.py", line 148, in __init__
>     self.env.run()
>   File "/usr/lib/python2.6/site-packages/resource_management/core/environment.py", line 149, in run
>     self.run_action(resource, action)
>   File "/usr/lib/python2.6/site-packages/resource_management/core/environment.py", line 115, in run_action
>     provider_action()
>   File "/usr/lib/python2.6/site-packages/resource_management/core/providers/system.py", line 243, in action_run
>     Logger.info("Retrying after %d seconds. Reason: %s" % (self.resource.try_sleep, str(ex)))
> UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 209: ordinal not in range(128)
> {code}
> Using this patch I can saw my error :
> --- providers/system.py.bak	2015-01-29 03:08:43.871997817 -0800
> +++ providers/system.py	2015-01-29 04:21:07.522199705 -0800
> @@ -240,7 +240,11 @@
>          if i == self.resource.tries-1: # last try
>            raise ex
>          else:
> -          Logger.info("Retrying after %d seconds. Reason: %s" % (self.resource.try_sleep, str(ex)))
> +          print(type(ex))
> +          print(type(ex.__repr__()))
> +          txt = ex.__repr__().decode('utf-8')
> +          print(txt)
> +          Logger.info("Retrying after %d seconds. Reason: %s" % (self.resource.try_sleep, txt))
>            time.sleep(self.resource.try_sleep)
>        except ExecuteTimeoutException:
>          err_msg = ("Execution of '%s' was killed due timeout after %d seconds") % (self.resource.command, self.resource.timeout)
> Now I saw the error in the output :
> {code}
> 2015-01-29 04:24:11,810 - Error while executing command 'service_check':
> Traceback (most recent call last):
>   File "/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py", line 123, in execute
>     method(env)
>   File "/var/lib/ambari-agent/cache/stacks/HDP/2.0.6/services/OOZIE/package/scripts/service_check.py", line 31, in service_check
>     oozie_smoke_shell_file( smoke_test_file_name)
>   File "/var/lib/ambari-agent/cache/stacks/HDP/2.0.6/services/OOZIE/package/scripts/service_check.py", line 55, in oozie_smoke_shell_file
>     logoutput = True
>   File "/usr/lib/python2.6/site-packages/resource_management/core/base.py", line 148, in __init__
>     self.env.run()
>   File "/usr/lib/python2.6/site-packages/resource_management/core/environment.py", line 149, in run
>     self.run_action(resource, action)
>   File "/usr/lib/python2.6/site-packages/resource_management/core/environment.py", line 115, in run_action
>     provider_action()
>   File "/usr/lib/python2.6/site-packages/resource_management/core/providers/system.py", line 241, in action_run
>     raise ex
> Fail: Execution of '/var/lib/ambari-agent/data/tmp/oozieSmoke2.sh redhat /etc/oozie/conf /usr/hdp/current/oozie-client/bin /etc/hadoop/conf /usr/hdp/current/hadoop-client/bin ambari-qa False' returned 1. dirname: op\xe9rande manquant
> Saisissez \xab\xa0dirname --help\xa0\xbb pour plus d'informations.
> 15/01/29 04:23:27 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 360 minutes, Emptier interval = 0 minutes.
> Moved: 'hdfs://sandbox.hortonworks.com:8020/user/ambari-qa/examples' to trash at: hdfs://sandbox.hortonworks.com:8020/user/ambari-qa/.Trash/Current
> {code}
> The patch attach in https://issues.apache.org/jira/browse/AMBARI-9283 doesn't change any thing.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)