Ruben Aguilar created OOZIE-2716:
------------------------------------

             Summary: Oozie Truncates Workflow Parameter Values which contain 
'}}'
                 Key: OOZIE-2716
                 URL: https://issues.apache.org/jira/browse/OOZIE-2716
             Project: Oozie
          Issue Type: Bug
    Affects Versions: 4.1.0
         Environment: Using Oozie 4.1.0-cdh5.8.2, Java 1.8.0_60-b27
            Reporter: Ruben Aguilar


When submitting a workflow job to oozie through the web api, if the value of a 
substituted workflow parameter contains a "}}" then the rest of the value is 
truncated. This happens quite often which json data. I tried delimiting by 
}} => }}}}
}} => \}\}
}} => '}''}'
but none of these worked.

Example:

Expected value received in jar (ending double braces):
{"hdfsArtifacts":null,"azureSqlArtifacts":null,"osdbArtifacts":{"username":"","password":"","server":"","database":"","schema":"","scriptsPath":"","outputType":""}}

Actual value received in jar (lacking ending double braces):
{"hdfsArtifacts":null,"azureSqlArtifacts":null,"osdbArtifacts":{"username":"","password":"","server":"","database":"","schema":"","scriptsPath":"","outputType":""

workflow.xml
<workflow-app name="end-2-end-test" xmlns="uri:oozie:workflow:0.4">
  <start to="SparkAction" />
  <action name="SparkAction">
    <spark xmlns="uri:oozie:spark-action:0.1">
      <job-tracker>${jobTracker}</job-tracker>
      <name-node>${nameNode}</name-node>
      <master>${master}</master>
      <mode>cluster</mode>
      <name>${jobName}</name>
      <class>${classToExecute}</class>
      <jar>${nameNode}${executableJarPath}</jar>
      <spark-opts></spark-opts>
      <arg>${artifactSpecification}</arg>
    </spark>
    <ok to="real-end" />
    <error to="fail"/>
  </action>
  <kill name="fail">
    <message>Spark Action failed, error 
message[${wf:errorMessage(wf:lastErrorNode())}]</message>
  </kill>
  <end name="real-end" />
</workflow-app>

Configuration sent to web api:
<configuration>
  <property>
    <name>jobName</name>
    <value>end-2-end-test</value>
  </property>
  <property>
    <name>oozie.use.system.libpath</name>
    <value>True</value>
  </property>
  <property>
    <name>executableJarPath</name>
    
<value>/oozie-jars/e2e-job-test/version-14/E2EJobTest-assembly-1.20.jar</value>
  </property>
  <property>
    <name>user.name</name>
    <value>oozie</value>
  </property>
  <property>
    <name>mapreduce.job.user.name</name>
    <value>oozie</value>
  </property>
  <property>
    <name>master</name>
    <value>yarn-cluster</value>
  </property>
  <property>
    <name>oozie.wf.application.path</name>
    
<value>hdfs://some-hdfs:8020/oozie-workflow/e2e-job-test/version-14/workflow.xml</value>
  </property>
  <property>
    <name>artifactSpecification</name>
    
<value>{"hdfsArtifacts":null,"azureSqlArtifacts":null,"osdbArtifacts":{"username":"","password":"","server":"","database":"","schema":"","scriptsPath":"","outputType":""}}</value>
  </property>
  <property>
    <name>jobTracker</name>
    <value>some-namenode:8032</value>
  </property>
  <property>
    <name>nameNode</name>
    <value>hdfs://some-namenode:8020</value>
  </property>
  <property>
    <name>classToExecute</name>
    <value>E2EJob</value>
  </property>
</configuration>




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

Reply via email to