Jerry Chabot created OOZIE-3458:
-----------------------------------

             Summary: Can no longer submit a coordinator job which has 
oozie.libpath and oozie.coord.application.path set
                 Key: OOZIE-3458
                 URL: https://issues.apache.org/jira/browse/OOZIE-3458
             Project: Oozie
          Issue Type: Bug
    Affects Versions: 5.1.0
            Reporter: Jerry Chabot


This bug is related to https://issues.apache.org/jira/browse/OOZIE-3457. Our 
Production environment is currently running Amazon EMR 5.19. We want to upgrade 
to EMR 5.22. Oozie will be upgraded from 5.0.0 to 5.1.0. Our deployment scripts 
can no longer submit coordinator jobs after upgrading a test environment. Here 
is a sample post from the oozie client.

POST [http://hbase.qa.local:11000/oozie/v2/jobs?action=start]

<?xml version="1.0" encoding="UTF-8" standalone="no"?><configuration>

<property><name>nameNode</name><value>hdfs://hbase.qa.local:8020</value></property>

<property><name>oozie.use.system.libpath</name><value>true</value></property>

<property><name>startTime</name><value>2018-03-28T00:00Z</value></property>

<property><name>queueName</name><value>oozie</value></property>

<property><name>jobTracker</name><value>hbase.qa.local:8032</value></property>

<property><name>oozie.libpath</name><value>hdfs://hbase.qa.local:8020/user/oozie/cmx</value></property>

<property><name>endTime</name><value>2020-01-01:00Z</value></property>

<property><name>applicationConfigFile</name><value>hdfs://hbase.qa.local:8020/usr/share/cmx/conf/app.properties,hdfs://hbase.qa.local:8020/usr/share/cmx/conf/crypto.properties</value></property>

<property><name>frequency</name><value>240</value></property>

<property><name>user.name</name><value>oozie</value></property>

<property><name>oozie.coord.application.path</name><value>hdfs://hbase.qa.local:8020/user/oozie/reporting/workspaceDimToVertica/</value></property>

</configuration>

Error: E0307 : E0307: Runtime error [App directory [null] does not exist and 
app definition cannot be created because of missing config value 
[oozie.jobs.api.generated.xml]]

Note, our code specifies oozie.libpath and oozie.coord.application.path. Is 
this no longer allowed?

I've narrowed down the problem to the checkAndWriteApplicationXMLToHDFS(...) 
method in V1JobsServlet.java. It is related to the new feature for submitting 
embedded XML within the job submission. This method is check whether the 
workflow.xml or coodinator.xml exists in either oozie.wf.application.path, 
oozie.libpath, oozie.coord.application.path or oozie.bundle.application.path.

First, why is it checking oozie.libpath? That is not an application path.

Second, it stops looking as soon as findAppPathsWithFileNames() returns  a 
value. Which it will always do when oozie.libpath is set even if an xml doesn't 
exist there. It does not continue looking for an xml file in 
oozie.coord.application.path or oozie.bundle.application.path.  I realize only 
one application path should be specified. IIMO, its the oozie.libpath check 
that is the problem.

Third, the logic is inefficient. Here are two lines. Why call the same method 
again with the same params. You already have the result!

if (!findAppPathsWithFileNames(appPath, "workflow.xml").isEmpty()) {
 appPathsWithFileNames = findAppPathsWithFileNames(appPath, "workflow.xml");
 }

It is critical that we upgrade to EMR 5.22. However, we are blocked until we 
figure out a way to get the job submitted and completing successfully. Any 
suggested workarounds would be greatly appreciated. But, I am filing this bug 
to get it fixed so an upgraded Oozie will make it into a future EMR release. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to