[ 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)