Philippe Kernevez created AMBARI-9396:
-----------------------------------------
Summary: 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
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)