Hi James,
Here is the template. Need to remove the .txt extension.
Note: I didn't bother to put in the correct flowfile xpath content for the
processor to evaluate to success result.
Thanks,
Keith
________________________________
From: James Wing <[email protected]>
Sent: Wednesday, June 08, 2016 3:59 PM
To: [email protected]
Subject: Re: Failure when running a workflow created from a template from
another NiFi version.
Keith,
Would you be able to share your sample template with us as an attachment, a
GitHub Gist, or something similar?
Thanks,
James
On Wed, Jun 8, 2016 at 3:36 PM, Keith Lim
<[email protected]<mailto:[email protected]>> wrote:
Hi Joe,
I created a simple workflow with EvaluateXPath and managed to repro the issue.
Here is the snapshot of the screen. This is on Windows with 0.7.0 snapshot.
There is no issue on 0.6.1 on Windows and 0.7.0 on Linux.
We can't roll back to 0.6.1 as we have a dependency on a feature in 0.7.0
Thanks,
Keith
[cid:36ee5712-5a4f-45cb-847e-3a9234eb4887]
________________________________________
From: Keith Lim <[email protected]<mailto:[email protected]>>
Sent: Wednesday, June 08, 2016 10:28 AM
To: [email protected]<mailto:[email protected]>
Subject: Re: Failure when running a workflow created from a template from
another NiFi version.
Hi Joe,
Interesting... I didn't find anything in the nifi-app.log, however, I found
these logged in the nifi.user.log.
2016-06-08 10:18:22,089 INFO [NiFi Web Server-20]
org.apache.nifi.web.filter.RequestLogger Attempting request for (anonymous) PUT
http://nifi.dev.azure.ds-iq.corp:10000/nifi-api/controller/process-groups/658947de-a030-3832-95a6-1f4d2b346131
(source ip: 10.200.0.31)
2016-06-08 10:18:22,089 INFO [NiFi Web Server-20]
o.a.n.w.a.c.IllegalStateExceptionMapper java.lang.IllegalStateException:
EvaluateXPath[id=6c73cffa-0d34-3b25-94d4-14d115b8b62b] is not in a valid state.
Returning Conflict response.
2016-06-08 10:18:24,636 INFO [NiFi Web Server-18]
org.apache.nifi.web.filter.RequestLogger Attempting request for (anonymous) GET
http://nifi.dev.azure.ds-iq.corp:10000/nifi-api/controller (source ip:
10.200.0.31)
2016-06-08 10:18:25,324 INFO [NiFi Web Server-22]
org.apache.nifi.web.filter.RequestLogger Attempting request for (anonymous) GET
http://nifi.dev.azure.ds-iq.corp:10000/nifi-api/controller (source ip:
10.200.0.31)
2016-06-08 10:18:29,511 INFO [NiFi Web Server-24]
org.apache.nifi.web.filter.RequestLogger Attempting request for (anonymous) PUT
http://nifi.dev.azure.ds-iq.corp:10000/nifi-api/controller/process-groups/658947de-a030-3832-95a6-1f4d2b346131
(source ip: 10.200.0.31)
2016-06-08 10:18:29,542 INFO [NiFi Web Server-24]
o.a.n.w.a.c.IllegalStateExceptionMapper java.lang.IllegalStateException:
EvaluateXPath[id=6c73cffa-0d34-3b25-94d4-14d115b8b62b] is not in a valid state.
Returning Conflict response.
This is the message box I got when I tried to run my workflow:
Node azudevmgmt01.ds-iq.corp:10001 is unable to fulfill this request due to:
EvaluateXPath[id=6c73cffa-0d34-3b25-94d4-14d115b8b62b] is not in a valid state
Thanks,
Keith
________________________________________
From: Joe Witt <[email protected]<mailto:[email protected]>>
Sent: Wednesday, June 08, 2016 10:02 AM
To: [email protected]<mailto:[email protected]>
Subject: Re: Failure when running a workflow created from a template from
another NiFi version.
Keith,
Can you collect more information on this from the nifi-app.log? Not
in valid state should be associated with some exceptions and such that
ideally will be in the logs.
Thanks
Joe
On Wed, Jun 8, 2016 at 1:00 PM, Keith Lim
<[email protected]<mailto:[email protected]>> wrote:
> Any help on this before while I am upgrading my NiFi to 0.7.0
>
>
> If this is an incompatibility issue between source (where the workflow is
> developed) and target NiFi (where the workflow is imported into and run),
> how is it best to deal with it without having to rewrite in new version?
>
>
> Thanks,
> Keith
>
> ________________________________
>
> From: Keith Lim <[email protected]<mailto:[email protected]>>
> Sent: Tuesday, June 07, 2016 5:07 PM
> To: [email protected]<mailto:[email protected]>
> Subject: Failure when running a workflow created from a template from
> another NiFi version.
>
>
> I am getting a weird error when I ran a workflow created from a template
> exported from another NiFi environment.
>
>
> The source template was developed in NiFi 0.6.1 and I ran it on 0.7.0.
>
>
> The error is
>
> Node <mymachinenode> is unable to fulfill this request due to:
> EvaluateXPath[id=6c73cffa-0d34-3b25-94d4-14d115b8b62b] is not in a valid
> state
>
>
> I went on to delete the processor instance in question and reran, and it
> would complaint the next processor until none is left. I was wondering this
> is related to upgrade and how is best to fix it without having to re-write
> the whole workflow on the new version?
>
> Thanks,
> Keith
>
>
<?xml version="1.0" encoding="UTF-8"
standalone="yes"?><template><description></description><name>RepoEvaluateXPathIssueInvalidState</name><snippet><processGroups><id>9da2d61d-48a7-4980-ba42-6277617d5940</id><parentGroupId>be207ea2-434a-4cab-b9d3-0cab3c72f973</parentGroupId><position><x>-342.0648649905846</x><y>377.52112330293426</y></position><activeRemotePortCount>0</activeRemotePortCount><comments></comments><contents><connections><id>5d9b09d9-b422-4acb-adb0-a193331ffb25</id><parentGroupId>9da2d61d-48a7-4980-ba42-6277617d5940</parentGroupId><backPressureDataSizeThreshold>0
MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>9da2d61d-48a7-4980-ba42-6277617d5940</groupId><id>0b6897b2-a300-4074-a6ec-b4156f47b022</id><type>PROCESSOR</type></destination><flowFileExpiration>0
sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>failure</selectedRelationships><selectedRelationships>matched</selectedRelationships><selectedRelationships>unmatched</selectedRelationships><source><groupId>9da2d61d-48a7-4980-ba42-6277617d5940</groupId><id>1c05b102-448d-4b22-89c2-b925b0b756ac</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><connections><id>e755a7c8-bbbe-48e0-90d7-bbf4c1bc40b5</id><parentGroupId>9da2d61d-48a7-4980-ba42-6277617d5940</parentGroupId><backPressureDataSizeThreshold>0
MB</backPressureDataSizeThreshold><backPressureObjectThreshold>0</backPressureObjectThreshold><destination><groupId>9da2d61d-48a7-4980-ba42-6277617d5940</groupId><id>1c05b102-448d-4b22-89c2-b925b0b756ac</id><type>PROCESSOR</type></destination><flowFileExpiration>0
sec</flowFileExpiration><labelIndex>1</labelIndex><name></name><selectedRelationships>success</selectedRelationships><source><groupId>9da2d61d-48a7-4980-ba42-6277617d5940</groupId><id>4f832e77-492f-46fe-b353-b586cd3dd1ab</id><type>PROCESSOR</type></source><zIndex>0</zIndex></connections><processors><id>1c05b102-448d-4b22-89c2-b925b0b756ac</id><parentGroupId>9da2d61d-48a7-4980-ba42-6277617d5940</parentGroupId><position><x>849.999984862931</x><y>403.00000513887176</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0
sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * *
?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Destination</key><value><allowableValues><displayName>flowfile-content</displayName><value>flowfile-content</value></allowableValues><allowableValues><displayName>flowfile-attribute</displayName><value>flowfile-attribute</value></allowableValues><defaultValue>flowfile-content</defaultValue><description>Indicates
whether the results of the XPath evaluation are written to the FlowFile
content or a FlowFile attribute; if using attribute, must specify the Attribute
Name property. If set to flowfile-content, only one XPath may be specified, and
the property name is
ignored.</description><displayName>Destination</displayName><dynamic>false</dynamic><name>Destination</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Return
Type</key><value><allowableValues><displayName>auto-detect</displayName><value>auto-detect</value></allowableValues><allowableValues><displayName>nodeset</displayName><value>nodeset</value></allowableValues><allowableValues><displayName>string</displayName><value>string</value></allowableValues><defaultValue>auto-detect</defaultValue><description>Indicates
the desired return type of the Xpath expressions. Selecting 'auto-detect'
will set the return type to 'nodeset' for a Destination of 'flowfile-content',
and 'string' for a Destination of
'flowfile-attribute'.</description><displayName>Return
Type</displayName><dynamic>false</dynamic><name>Return
Type</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>test</key><value><description></description><displayName>test</displayName><dynamic>true</dynamic><name>test</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30
sec</penaltyDuration><properties><entry><key>Destination</key><value>flowfile-attribute</value></entry><entry><key>Return
Type</key></entry><entry><key>test</key><value>/qdbapi/errcode</value></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0
sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1
sec</yieldDuration></config><name>EvaluateXPath</name><relationships><autoTerminate>false</autoTerminate><description>FlowFiles
are routed to this relationship when the XPath cannot be evaluated against the
content of the FlowFile; for instance, if the FlowFile is not valid XML, or if
the Return Type is 'nodeset' and the XPath evaluates to multiple
nodes</description><name>failure</name></relationships><relationships><autoTerminate>false</autoTerminate><description>FlowFiles
are routed to this relationship when the XPath is successfully evaluated and
the FlowFile is modified as a
result</description><name>matched</name></relationships><relationships><autoTerminate>false</autoTerminate><description>FlowFiles
are routed to this relationship when the XPath does not match the content of
the FlowFile and the Destination is set to
flowfile-content</description><name>unmatched</name></relationships><state>STOPPED</state><style/><supportsEventDriven>true</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.standard.EvaluateXPath</type></processors><processors><id>0b6897b2-a300-4074-a6ec-b4156f47b022</id><parentGroupId>9da2d61d-48a7-4980-ba42-6277617d5940</parentGroupId><position><x>882.999984862931</x><y>593.0000051388718</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0
sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * *
?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>Directory</key><value><description>The
directory to which files should be written. You may use expression language
such as
/aa/bb/${path}</description><displayName>Directory</displayName><dynamic>false</dynamic><name>Directory</name><required>true</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>Conflict
Resolution
Strategy</key><value><allowableValues><displayName>replace</displayName><value>replace</value></allowableValues><allowableValues><displayName>ignore</displayName><value>ignore</value></allowableValues><allowableValues><displayName>fail</displayName><value>fail</value></allowableValues><defaultValue>fail</defaultValue><description>Indicates
what should happen when a file with the same name already exists in the output
directory</description><displayName>Conflict Resolution
Strategy</displayName><dynamic>false</dynamic><name>Conflict Resolution
Strategy</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Create
Missing
Directories</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>true</defaultValue><description>If
true, then missing destination directories will be created. If false,
flowfiles are penalized and sent to failure.</description><displayName>Create
Missing Directories</displayName><dynamic>false</dynamic><name>Create Missing
Directories</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Maximum
File Count</key><value><description>Specifies the maximum number of files that
can exist in the output directory</description><displayName>Maximum File
Count</displayName><dynamic>false</dynamic><name>Maximum File
Count</name><required>false</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Last
Modified Time</key><value><description>Sets the lastModifiedTime on the output
file to the value of this attribute. Format must be yyyy-MM-dd'T'HH:mm:ssZ.
You may also use expression language such as
${file.lastModifiedTime}.</description><displayName>Last Modified
Time</displayName><dynamic>false</dynamic><name>Last Modified
Time</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>Permissions</key><value><description>Sets
the permissions on the output file to the value of this attribute. Format
must be either UNIX rwxrwxrwx with a - in place of denied permissions (e.g.
rw-r--r--) or an octal number (e.g. 644). You may also use expression language
such as
${file.permissions}.</description><displayName>Permissions</displayName><dynamic>false</dynamic><name>Permissions</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>Owner</key><value><description>Sets
the owner on the output file to the value of this attribute. You may also use
expression language such as
${file.owner}.</description><displayName>Owner</displayName><dynamic>false</dynamic><name>Owner</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry><entry><key>Group</key><value><description>Sets
the group on the output file to the value of this attribute. You may also use
expression language such as
${file.group}.</description><displayName>Group</displayName><dynamic>false</dynamic><name>Group</name><required>false</required><sensitive>false</sensitive><supportsEl>true</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30
sec</penaltyDuration><properties><entry><key>Directory</key><value>C:\temp\test</value></entry><entry><key>Conflict
Resolution Strategy</key></entry><entry><key>Create Missing
Directories</key></entry><entry><key>Maximum File
Count</key></entry><entry><key>Last Modified
Time</key></entry><entry><key>Permissions</key></entry><entry><key>Owner</key></entry><entry><key>Group</key></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0
sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1
sec</yieldDuration></config><name>PutFile</name><relationships><autoTerminate>true</autoTerminate><description>Files
that could not be written to the output directory for some reason are
transferred to this
relationship</description><name>failure</name></relationships><relationships><autoTerminate>true</autoTerminate><description>Files
that have been successfully written to the output directory are transferred to
this
relationship</description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>false</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.standard.PutFile</type></processors><processors><id>4f832e77-492f-46fe-b353-b586cd3dd1ab</id><parentGroupId>9da2d61d-48a7-4980-ba42-6277617d5940</parentGroupId><position><x>821.999984862931</x><y>200.00000513887176</y></position><config><bulletinLevel>WARN</bulletinLevel><comments></comments><concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount><defaultConcurrentTasks><entry><key>TIMER_DRIVEN</key><value>1</value></entry><entry><key>EVENT_DRIVEN</key><value>0</value></entry><entry><key>CRON_DRIVEN</key><value>1</value></entry></defaultConcurrentTasks><defaultSchedulingPeriod><entry><key>TIMER_DRIVEN</key><value>0
sec</value></entry><entry><key>CRON_DRIVEN</key><value>* * * * *
?</value></entry></defaultSchedulingPeriod><descriptors><entry><key>File
Size</key><value><description>The size of the file that will be
used</description><displayName>File
Size</displayName><dynamic>false</dynamic><name>File
Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Batch
Size</key><value><defaultValue>1</defaultValue><description>The number of
FlowFiles to be transferred in each invocation</description><displayName>Batch
Size</displayName><dynamic>false</dynamic><name>Batch
Size</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Data
Format</key><value><allowableValues><displayName>Binary</displayName><value>Binary</value></allowableValues><allowableValues><displayName>Text</displayName><value>Text</value></allowableValues><defaultValue>Binary</defaultValue><description>Specifies
whether the data should be Text or Binary</description><displayName>Data
Format</displayName><dynamic>false</dynamic><name>Data
Format</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry><entry><key>Unique
FlowFiles</key><value><allowableValues><displayName>true</displayName><value>true</value></allowableValues><allowableValues><displayName>false</displayName><value>false</value></allowableValues><defaultValue>false</defaultValue><description>If
true, each FlowFile that is generated will be unique. If false, a random value
will be generated and all FlowFiles will get the same content but this offers
much higher throughput</description><displayName>Unique
FlowFiles</displayName><dynamic>false</dynamic><name>Unique
FlowFiles</name><required>true</required><sensitive>false</sensitive><supportsEl>false</supportsEl></value></entry></descriptors><lossTolerant>false</lossTolerant><penaltyDuration>30
sec</penaltyDuration><properties><entry><key>File Size</key><value>1
B</value></entry><entry><key>Batch Size</key></entry><entry><key>Data
Format</key><value>Text</value></entry><entry><key>Unique
FlowFiles</key></entry></properties><runDurationMillis>0</runDurationMillis><schedulingPeriod>0
sec</schedulingPeriod><schedulingStrategy>TIMER_DRIVEN</schedulingStrategy><yieldDuration>1
sec</yieldDuration></config><name>GenerateFlowFile</name><relationships><autoTerminate>false</autoTerminate><description></description><name>success</name></relationships><state>STOPPED</state><style/><supportsEventDriven>false</supportsEventDriven><supportsParallelProcessing>true</supportsParallelProcessing><type>org.apache.nifi.processors.standard.GenerateFlowFile</type></processors></contents><disabledCount>0</disabledCount><inactiveRemotePortCount>0</inactiveRemotePortCount><inputPortCount>0</inputPortCount><invalidCount>1</invalidCount><name>Repro
Issue for
EvaluateXPath</name><outputPortCount>0</outputPortCount><parent><id>be207ea2-434a-4cab-b9d3-0cab3c72f973</id><name>Test</name><parent><id>8c867ac9-8563-4768-97a4-caebf858d0d1</id><name>Data
Source Name S -
Z</name><parent><id>5922e4b2-2fec-4f81-82b9-0b72129ff93f</id><name>NiFi
Flow</name></parent></parent></parent><runningCount>0</runningCount><stoppedCount>2</stoppedCount></processGroups></snippet><timestamp>06/08/2016
16:06:46 PDT</timestamp></template>