[ 
https://issues.apache.org/jira/browse/OOZIE-2104?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Kanter updated OOZIE-2104:
---------------------------------
    Attachment: OOZIE-2104.patch

The patch changes ActionService to build the list of action executors first, 
taking the latest one when there are conflicts, and then initializing them.  I 
also did some refactoring for other unit tests and added instrumentation to say 
which action types were loaded because that might be useful info.

> oozie server dies on startup if oozie-site redefines ActionExecutor classes
> ---------------------------------------------------------------------------
>
>                 Key: OOZIE-2104
>                 URL: https://issues.apache.org/jira/browse/OOZIE-2104
>             Project: Oozie
>          Issue Type: Bug
>    Affects Versions: trunk
>            Reporter: Robert Kanter
>            Assignee: Robert Kanter
>            Priority: Blocker
>         Attachments: OOZIE-2104.patch
>
>
> OOZIE-1890 moved everything out of oozie-site; this includes the 
> ActionExecutor config properties 
> ({{oozie.service.ActionService.executor.classes}} and 
> {{oozie.service.ActionService.executor.ext.classes}}).
> Because these were previously defined in ooze-site, if the user re-uses their 
> oozie-site after upgrading to an version of Oozie with OOZIE-1890, then Oozie 
> will die on startup with:
> {noformat}
> 2014-12-29 20:15:04,077 FATAL Services:514 - SERVER[p0106.sjc.cloudera.com] 
> E0150: Actionexecutor type already registered [email]
> org.apache.oozie.service.ServiceException: E0150: Actionexecutor type already 
> registered [email]
>         at 
> org.apache.oozie.service.ActionService.register(ActionService.java:92)
>         at 
> org.apache.oozie.service.ActionService.registerExecutors(ActionService.java:72)
>         at org.apache.oozie.service.ActionService.init(ActionService.java:66)
>         at 
> org.apache.oozie.service.Services.setServiceInternal(Services.java:386)
>         at org.apache.oozie.service.Services.setService(Services.java:372)
>         at org.apache.oozie.service.Services.loadServices(Services.java:305)
>         at org.apache.oozie.service.Services.init(Services.java:213)
>         at 
> org.apache.oozie.servlet.ServicesLoader.contextInitialized(ServicesLoader.java:46)
>         at 
> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4210)
>         at 
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4709)
> ...
> ...
>         at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
>         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
> 2014-12-29 20:15:04,126  INFO Services:520 - SERVER[p0106.sjc.cloudera.com] 
> Shutdown
> {noformat}
> The problem is that Oozie currently doesn't allow an ActionExecutor type to 
> be redefined once defined.  We should change this so that Oozie uses 
> whichever is defined last (doesn't matter if it's redefined as the same or 
> different implementation).  This will also allow the ext property to override 
> the regular property.



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

Reply via email to