> On Feb. 24, 2015, 2:25 p.m., Andrew Onischuk wrote:
> > This approach is so hacky, when we need substitution we ussually send 
> > templates like {{hostname}}, and then they get automatically replaced. This 
> > what we do for all our substitutions.
> 
> Robert Levas wrote:
>     I don't think this is _hacky_.   We can not use the `{{hostnanme}}` 
> approach since that is a Python-specific construct and the princial name is 
> being generated by Ambari.  Therefore we are left to do the explicit 
> replacement on the agent-side using  `.replace('_HOST', hostname)`.  This 
> method is done throughout the code. 
>     
>     I believe that altering the immutable dictionary is not a good idea, but 
> the relevant set of data should be copied to a new dictionary and modified 
> there.

Correction: the origianl dictionaly is not changed, I copy is being created. I 
think this is the correct approach.


- Robert


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/31368/#review73872
-----------------------------------------------------------


On Feb. 24, 2015, 1:24 p.m., Robert Levas wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/31368/
> -----------------------------------------------------------
> 
> (Updated Feb. 24, 2015, 1:24 p.m.)
> 
> 
> Review request for Ambari, Andrew Onischuk, Eugene Chekanskiy, and Vitalyi 
> Brodetskyi.
> 
> 
> Bugs: AMBARI-9775
>     https://issues.apache.org/jira/browse/AMBARI-9775
> 
> 
> Repository: ambari
> 
> 
> Description
> -------
> 
> On 2.0 and 2.1 stack oozie server failed with following error:
> ```
> 2015-02-23 16:23:54,474  WARN NativeCodeLoader:62 - SERVER[] Unable to load 
> native-hadoop library for your platform... using builtin-java classes where 
> applicable
> 2015-02-23 16:23:54,821 FATAL Services:533 - SERVER[] USER[-] GROUP[-] E0100: 
> Could not initialize service 
> [org.apache.oozie.service.HadoopAccessorService], Login failure for 
> oozie/[email protected] from keytab /etc/security/keytabs/oozie.service.keytab
> org.apache.oozie.service.ServiceException: E0100: Could not initialize 
> service [org.apache.oozie.service.HadoopAccessorService], Login failure for 
> oozie/[email protected] from keytab /etc/security/keytabs/oozie.service.keytab
>       at 
> org.apache.oozie.service.HadoopAccessorService.kerberosInit(HadoopAccessorService.java:182)
>       at 
> org.apache.oozie.service.HadoopAccessorService.init(HadoopAccessorService.java:127)
>       at 
> org.apache.oozie.service.HadoopAccessorService.init(HadoopAccessorService.java:98)
>       at 
> org.apache.oozie.service.Services.setServiceInternal(Services.java:372)
>       at org.apache.oozie.service.Services.setService(Services.java:358)
>       at org.apache.oozie.service.Services.loadServices(Services.java:291)
>       at org.apache.oozie.service.Services.init(Services.java:212)
>       at 
> org.apache.oozie.servlet.ServicesLoader.contextInitialized(ServicesLoader.java:39)
>       at 
> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)
>       at 
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
>       at 
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
>       at 
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
>       at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
>       at 
> org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
>       at 
> org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
>       at 
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
>       at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
>       at 
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
>       at 
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
>       at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
>       at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
>       at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
>       at 
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
>       at 
> org.apache.catalina.core.StandardService.start(StandardService.java:525)
>       at 
> org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
>       at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:606)
>       at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
>       at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
> Caused by: java.io.IOException: Login failure for oozie/[email protected] 
> from keytab /etc/security/keytabs/oozie.service.keytab
>       at 
> org.apache.hadoop.security.UserGroupInformation.loginUserFromKeytab(UserGroupInformation.java:870)
>       at 
> org.apache.oozie.service.HadoopAccessorService.kerberosInit(HadoopAccessorService.java:174)
>       ... 31 more
> Caused by: javax.security.auth.login.LoginException: Unable to obtain 
> password from user
> 
>       at 
> com.sun.security.auth.module.Krb5LoginModule.promptForPass(Krb5LoginModule.java:856)
>       at 
> com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:719)
>       at 
> com.sun.security.auth.module.Krb5LoginModule.login(Krb5LoginModule.java:584)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:606)
>       at javax.security.auth.login.LoginContext.invoke(LoginContext.java:762)
>       at 
> javax.security.auth.login.LoginContext.access$000(LoginContext.java:203)
>       at javax.security.auth.login.LoginContext$4.run(LoginContext.java:690)
>       at javax.security.auth.login.LoginContext$4.run(LoginContext.java:688)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at 
> javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:687)
>       at javax.security.auth.login.LoginContext.login(LoginContext.java:595)
>       at 
> org.apache.hadoop.security.UserGroupInformation.loginUserFromKeytab(UserGroupInformation.java:861)
>       ... 32 more
> 2015-02-23 16:23:54,833  INFO Services:539 - SERVER[] Shutdown
> ```
> 
> Solution: replace _HOST in principal names for relevant Oozie versions.
> 
> 
> Diffs
> -----
> 
>   
> ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie.py
>  2065f4a 
>   
> ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/params.py
>  efe11f5 
> 
> Diff: https://reviews.apache.org/r/31368/diff/
> 
> 
> Testing
> -------
> 
> unit tests passed, service checks passed on all stacks
> 
> # Jenkins test results: PENDING
> 
> 
> Thanks,
> 
> Robert Levas
> 
>

Reply via email to