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

Dmitry Lysnichenko commented on AMBARI-3126:
--------------------------------------------

[~edrevo],
I could not reproduce an issue. When Oozie is installed via Ambari, symlinks 
seem to be handled correctly. Studying puppet code reveals that this call at 
/src/main/puppet/modules/hdp-oozie/manifests/init.pp:80
{code}
 hdp::directory { $oozie_config_dir: 
       service_state => $service_state,
       force => true,
       owner => $oozie_user,
       group => $hdp::params::user_group,
       override_owner => true
     }
{code}

invokes this definition  /src/main/puppet/modules/hdp/manifests/init.pp:354
{code}
define hdp::directory(
  $owner = undef,
  $group = $hdp::params::user_group,
  $mode  = undef,
  $ensure = directory,
  $force = undef,
  $service_state = 'running',
  $override_owner = false
  )
{
 if (($service_state == 'uninstalled') and ($wipeoff_data == true)) {
  file { $name :
    ensure => absent,
    owner  => $owner,
    group  => $group,
    mode   => $mode,
    force  => $force
   }
  } elsif ($service_state != 'uninstalled') {
    if $override_owner == true {
      file { $name :
      ensure => present,
      owner  => $owner,
      group  => $group,
      mode   => $mode,
      force  => $force
     }
    } else {
      file { $name :
      ensure => present,
      mode   => $mode,
      force  => $force
     }
    }
  }
}
{code}
Everywhere at this definition we use "ensure => present" and not "ensure => 
directory" regardless of value of an $ensure parameter. So hdp::directory 
invocation (with any parameters) should not replace a symlink with an empty 
directory. I've tested that playing with a simple puppet file (/tmp/1.pp):
{code}
file { "/etc/oozie/conf":
      ensure => present,
      force  => true,
      mode   => 675,
      owner => nobody
 }
{code}
It may be started via command 
{code}
export PATH=/usr/lib/ambari-agent/lib/ruby-1.8.7-p370/bin/:$PATH && export 
RUBYLIB="/usr/lib/ambari-agent/lib/facter-1.6.10/lib/:/usr/lib/ambari-agent/lib/puppet-2.7.9/lib"
 && /usr/lib/ambari-agent/lib/puppet-2.7.9/bin/puppet apply 
--confdir=/var/lib/ambari-agent/puppet --detailed-exitcodes /tmp/1.pp
{code}

Also, some line numbers in a patch seem to be outdated (line numbers differ 
significantly compared to a trunk). May it be any chance of an issue with 
outdated git repository clone?
                
> Oozie missing action-conf
> -------------------------
>
>                 Key: AMBARI-3126
>                 URL: https://issues.apache.org/jira/browse/AMBARI-3126
>             Project: Ambari
>          Issue Type: Bug
>    Affects Versions: 1.3.0
>            Reporter: Ximo Guanter
>            Assignee: Ximo Guanter
>             Fix For: 1.4.1
>
>         Attachments: AMBARI-3126-1.patch
>
>
> Ambari will transition the service from INIT to INSTALLED and then STARTED 
> with no problems, but the Oozie server won't actually be started. Here's the 
> relevant part of the Oozie server's log:
> {code}
> 2013-09-06 02:37:36,821 FATAL Services:533 - USER[-] GROUP[-] E0100: Could 
> not initialize service [org.apache.oozie.service.HadoopAccessorService], 
> could not find action configuration directory: /etc/oozie/conf/action-conf
> org.apache.oozie.service.ServiceException: E0100: Could not initialize 
> service [org.apache.oozie.service.HadoopAccessorService], could not find 
> action configuration directory: /etc/oozie/conf/action-conf
>         at 
> org.apache.oozie.service.HadoopAccessorService.parseConfigDirs(HadoopAccessorService.java:227)
>         at 
> org.apache.oozie.service.HadoopAccessorService.preLoadActionConfigs(HadoopAccessorService.java:260)
>         at 
> org.apache.oozie.service.HadoopAccessorService.init(HadoopAccessorService.java:141)
>         at 
> org.apache.oozie.service.HadoopAccessorService.init(HadoopAccessorService.java:97)
>         at 
> org.apache.oozie.service.Services.setServiceInternal(Services.java:368)
>         at org.apache.oozie.service.Services.setService(Services.java:354)
>         at org.apache.oozie.service.Services.loadServices(Services.java:287)
>         at org.apache.oozie.service.Services.init(Services.java:208)
>         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.deployWAR(HostConfig.java:943)
>         at 
> org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778)
>         at 
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:504)
>         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)
> {code}
> I suspect this is due to line 82 in hdp-oozie/manifests/init.pp:
> {code}
> hdp::directory { $oozie_config_dir:
>   service_state => $service_state,
>   force => true, // BUG: this will remove the actions-conf directory
>   owner => $oozie_user,
>   group => $hdp::params::user_group,
>   override_owner => true
> }
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to