Support Article
Error thrown when stopping/pausing DataFlow Run
SA-43323
Summary
User is using Pega 7.3 and reported the below error when starting and then pausing the data flow run even if the data flow is not processing any records.
Error Messages
2017-08-14 13:13:37,048 [cISR:Administrators]] [ STANDARD] [ ] [ ] (ataflow.task.ExecutionDoneTask) ERROR - Post activity execution failed for run [DF-1]
com.pega.dsm.dnode.impl.dataflow.exception.ActivityExecutionException: Activity CreateOrUpdateCase failed to execute
at com.pega.dsm.dnode.impl.dataflow.service.processor.TaskActivity.runActivityLocally(TaskActivity.java:97) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.impl.dataflow.service.processor.TaskActivity.runLocallyOrOnAllNodes(TaskActivity.java:85) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.impl.dataflow.service.processor.TaskActivity.runActivity(TaskActivity.java:46) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.impl.dataflow.task.ExecutionDoneTask.finishRun(ExecutionDoneTask.java:159) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.impl.dataflow.task.ExecutionDoneTask.access$000(ExecutionDoneTask.java:34) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.impl.dataflow.task.ExecutionDoneTask$2.execute(ExecutionDoneTask.java:144) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.util.OperationWithLock$1.execute(OperationWithLock.java:55) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.util.OperationWithLock.doWithLock(OperationWithLock.java:94) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.util.OperationWithLock.doWithLock(OperationWithLock.java:59) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.util.OperationWithLock.doWithLock(OperationWithLock.java:44) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.impl.prpc.service.ServiceHelper.executeWithLockInternal(ServiceHelper.java:187) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.impl.prpc.service.ServiceHelper.executeWithLock(ServiceHelper.java:151) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.impl.prpc.service.ServiceHelper.executeWithLockWithoutRetries(ServiceHelper.java:143) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.impl.dataflow.task.ExecutionDoneTask.forceExecution(ExecutionDoneTask.java:53) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.impl.dataflow.task.ExecutionDoneTask.execute(ExecutionDoneTask.java:66) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.impl.dataflow.task.PickupRunTask$1$1.run(PickupRunTask.java:89) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.impl.dataflow.task.PickupRunTask$1$1.run(PickupRunTask.java:81) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.util.PrpcRunnable.execute(PrpcRunnable.java:52) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.impl.prpc.service.ServiceHelper.executeInPrpcContextInternal(ServiceHelper.java:215) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.impl.prpc.service.ServiceHelper.executeInPrpcContext(ServiceHelper.java:90) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.impl.dataflow.task.PickupRunTask$1.run(PickupRunTask.java:81) ~[dnode-7.3.0.jar:?]
at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:456) ~[guava-19.0.jar:?]
at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:817) ~[guava-19.0.jar:?]
at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:753) ~[guava-19.0.jar:?]
at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:613) ~[guava-19.0.jar:?]
at com.google.common.util.concurrent.CollectionFuture$CollectionFutureRunningState.handleAllCompleted(CollectionFuture.java:76) ~[guava-19.0.jar:?]
at com.google.common.util.concurrent.AggregateFuture$RunningState.processCompleted(AggregateFuture.java:255) ~[guava-19.0.jar:?]
at com.google.common.util.concurrent.AggregateFuture$RunningState.decrementCountAndMaybeComplete(AggregateFuture.java:242) ~[guava-19.0.jar:?]
at com.google.common.util.concurrent.AggregateFuture$RunningState.run(AggregateFuture.java:106) ~[guava-19.0.jar:?]
at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:456) ~[guava-19.0.jar:?]
at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:817) ~[guava-19.0.jar:?]
at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:753) ~[guava-19.0.jar:?]
at com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:613) ~[guava-19.0.jar:?]
at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:108) ~[guava-19.0.jar:?]
at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:41) ~[guava-19.0.jar:?]
at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:77) ~[guava-19.0.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[?:1.8.0_121]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[?:1.8.0_121]
at com.pega.dsm.dnode.util.PrpcRunnable$1.run(PrpcRunnable.java:44) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.util.PrpcRunnable$1.run(PrpcRunnable.java:41) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.util.PrpcRunnable.execute(PrpcRunnable.java:52) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.impl.prpc.PrpcThreadFactory$PrpcThread.run(PrpcThreadFactory.java:109) ~[dnode-7.3.0.jar:?]
Caused by: com.pega.pegarules.pub.clipboard.InvalidReferenceException: The reference "Start processing of snapshot for case with SessionID: " + .SessionID is not valid. Reason: FUAInstance-NullMyStepPage
at com.pegarules.generated.activity.ra_action_createorupdatecase_bee2abdedda5f28efbc1828ff2f2321b.step1_circum0(ra_action_createorupdatecase_bee2abdedda5f28efbc1828ff2f2321b.java:554) ~[?:?]
at com.pegarules.generated.activity.ra_action_createorupdatecase_bee2abdedda5f28efbc1828ff2f2321b.perform(ra_action_createorupdatecase_bee2abdedda5f28efbc1828ff2f2321b.java:70) ~[?:?]
at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3586) ~[prprivate.jar:?]
at com.pega.dsm.dnode.impl.dataflow.activity.PRPCActivities.prePostActivity(PRPCActivities.java:65) ~[dnode-7.3.0.jar:?]
at com.pega.dsm.dnode.impl.dataflow.service.processor.TaskActivity.runActivityLocally(TaskActivity.java:94) ~[dnode-7.3.0.jar:?]
Steps to Reproduce
- Create a Kafka Data Set and then create a Data Flow to use that created Data Set.
- Configure Data Flow Run to process messages in real-time.
- While creating the Data Flow run item, configure an activity as destination for data flow processing also use the same activity as a data flow post processing activity.
- Start and stop the Data Flow Run and observe the error.
Root Cause
An issue in the custom application code or rules is identified as root cause. The activity used as Data Flow destination was also used as a post processing activity. The activities executed as pre or post activities don't have a step page to execute on, that's why it's null.
The post processing activity should not assume the data flow to process more than zero records.
The below explains the use of destination and pos processing activity:
- Destination Activity: If an activity is configured in the Data Flow rule to be the destination, it will be executed for every record that reaches this stage and the record will be the step page for the execution.
- Post Activity: The post activity, configured when you create a new run, will be triggered once the data flow runs gets to an end stage, be it stopped, failed or completed regardless of the number of records that were processed. When executing this activity there's no step page provided as this works as a wrap up of the whole data flow run.
Resolution
Perform the following local-change steps:
- Create a new Data Flow Run item (not a new Data Flow rule).
- Ensure that the same activity is not configured as both Data Flow destination and as post processing activity for Data Flow run.
Published December 5, 2017 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.