Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-2814

DeltaIteration: DualInputPlanNode cannot be cast to SingleInputPlanNode

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.10.0
    • Fix Version/s: 1.3.0
    • Component/s: Optimizer
    • Labels:
      None

      Description

      A delta iteration that closes with a solution set which is a JoinOperator throws the following exception:

      org.apache.flink.client.program.ProgramInvocationException: The main method caused an error.
      	at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:444)
      	at org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:345)
      	at org.apache.flink.client.program.Client.runBlocking(Client.java:289)
      	at org.apache.flink.client.CliFrontend.executeProgramBlocking(CliFrontend.java:669)
      	at org.apache.flink.client.CliFrontend.run(CliFrontend.java:324)
      	at org.apache.flink.client.CliFrontend.parseParameters(CliFrontend.java:969)
      	at org.apache.flink.client.CliFrontend.main(CliFrontend.java:1019)
      Caused by: java.lang.ClassCastException: org.apache.flink.optimizer.plan.DualInputPlanNode cannot be cast to org.apache.flink.optimizer.plan.SingleInputPlanNode
      	at org.apache.flink.optimizer.dag.WorksetIterationNode.instantiate(WorksetIterationNode.java:432)
      	at org.apache.flink.optimizer.dag.TwoInputNode.addLocalCandidates(TwoInputNode.java:557)
      	at org.apache.flink.optimizer.dag.TwoInputNode.getAlternativePlans(TwoInputNode.java:478)
      	at org.apache.flink.optimizer.dag.DataSinkNode.getAlternativePlans(DataSinkNode.java:204)
      	at org.apache.flink.optimizer.dag.TwoInputNode.getAlternativePlans(TwoInputNode.java:309)
      	at org.apache.flink.optimizer.dag.TwoInputNode.getAlternativePlans(TwoInputNode.java:308)
      	at org.apache.flink.optimizer.Optimizer.compile(Optimizer.java:500)
      	at org.apache.flink.optimizer.Optimizer.compile(Optimizer.java:402)
      	at org.apache.flink.client.program.Client.getOptimizedPlan(Client.java:271)
      	at org.apache.flink.client.program.Client.getOptimizedPlan(Client.java:543)
      	at org.apache.flink.client.program.Client.runBlocking(Client.java:350)
      	at org.apache.flink.client.program.ContextEnvironment.execute(ContextEnvironment.java:64)
      	at org.apache.flink.api.java.ExecutionEnvironment.execute(ExecutionEnvironment.java:796)
      	at org.apache.flink.api.java.DataSet.collect(DataSet.java:424)
      	at org.apache.flink.api.java.DataSet.print(DataSet.java:1365)
      	at Driver.main(Driver.java:366)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:429)
      	... 6 more
      

      Temporary fix is to attach an identity mapper.

        Attachments

          Activity

            People

            • Assignee:
              rekhajoshm Rekha Joshi
              Reporter:
              greghogan Greg Hogan
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: