You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Koji Kawamura (JIRA)" <ji...@apache.org> on 2018/04/13 00:59:00 UTC
[jira] [Commented] (NIFI-5075) Funnels with no outgoing
relationship error
[ https://issues.apache.org/jira/browse/NIFI-5075?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16436612#comment-16436612 ]
Koji Kawamura commented on NIFI-5075:
-------------------------------------
Funnels are not executed until NiFi 1.6.0 when there is no outgoing connections. There was following conditions in NiFi framework to call onTrigger:
{code}
final boolean shouldRun = (connectable.getYieldExpiration() < System.currentTimeMillis())
&& (triggerWhenEmpty || (flowFilesQueued = Connectables.flowFilesQueued(connectable)))
&& (connectable.getConnectableType() != ConnectableType.FUNNEL || !(funnelWithoutConnections = connectable.getConnections().isEmpty()))
&& (connectable.getRelationships().isEmpty() || (relationshipAvailable = Connectables.anyRelationshipAvailable(connectable)));
{code}
https://github.com/apache/nifi/blob/46d30c7e92f0ad034d9b35bf1d05c350ab5547ed/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/tasks/ContinuallyRunConnectableTask.java#L72-L75
But the ContinuallyRunConnectableTask is removed by NIFI-4895. It seems above condition was not properly ported to new implementation. I will keep digging.
> Funnels with no outgoing relationship error
> -------------------------------------------
>
> Key: NIFI-5075
> URL: https://issues.apache.org/jira/browse/NIFI-5075
> Project: Apache NiFi
> Issue Type: Bug
> Components: Core Framework
> Affects Versions: 1.6.0
> Reporter: Peter Wicks
> Priority: Major
>
> If a Funnel has no outgoing relationships it will throw an exception when it tries to send FlowFile's to that non-existent relationship.
> Replicate by creating a GenerateFlowFile processor to a Funnel, start the GenerateFlowFile processor and check your log file.
>
> 2018-04-11 23:53:28,066 ERROR [Timer-Driven Process Thread-31] o.apache.nifi.controller.StandardFunnel StandardFunnel[id=b868231c-0162-1000-571c-ae3e7d15d848] StandardFunnel[id=b868231c-0162-1000-571c-ae3e7d15d848] failed to process session due to java.lang.RuntimeException: java.lang.IllegalArgumentException: Relationship '' is not known; Processor Administratively Yielded for 1 sec: java.lang.RuntimeException: java.lang.IllegalArgumentException: Relationship '' is not known
> java.lang.RuntimeException: java.lang.IllegalArgumentException: Relationship '' is not known
> at org.apache.nifi.controller.StandardFunnel.onTrigger(StandardFunnel.java:365)
> at org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:175)
> at org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
> at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
> at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.IllegalArgumentException: Relationship '' is not known
> at org.apache.nifi.controller.repository.StandardProcessSession.transfer(StandardProcessSession.java:1935)
> at org.apache.nifi.controller.StandardFunnel.onTrigger(StandardFunnel.java:379)
> at org.apache.nifi.controller.StandardFunnel.onTrigger(StandardFunnel.java:358)
> ... 9 common frames omitted
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)