conductor icon indicating copy to clipboard operation
conductor copied to clipboard

NPE in Workflow Repair Logic

Open sks1995 opened this issue 2 years ago • 0 comments

Describe the bug Workflow repair logic fails with NPE when workflow information is not present in data store.

java.lang.NullPointerException: null
	at com.netflix.conductor.core.reconciliation.WorkflowRepairService.verifyAndRepairWorkflowTasks(WorkflowRepairService.java:105) ~[conductor-core-3.11.3.jar:3.11.3]
	at com.netflix.conductor.core.reconciliation.WorkflowSweeper.sweep(WorkflowSweeper.java:74) ~[conductor-core-3.11.3.jar:3.11.3]
	at com.netflix.conductor.core.reconciliation.WorkflowSweeper.sweepAsync(WorkflowSweeper.java:62) ~[conductor-core-3.11.3.jar:3.11.3]
	at com.netflix.conductor.core.reconciliation.WorkflowSweeper$$FastClassBySpringCGLIB$$f994448e.invoke(<generated>) ~[conductor-core-3.11.3.jar:3.11.3]
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[conductor-es7-persistence-3.11.3.jar:3.11.3]
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) ~[conductor-es7-persistence-3.11.3.jar:3.11.3]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[conductor-es7-persistence-3.11.3.jar:3.11.3]
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[conductor-es7-persistence-3.11.3.jar:3.11.3]
	at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115) ~[conductor-es7-persistence-3.11.3.jar:3.11.3]
	at org.springframework.aop.interceptor.AsyncExecutionAspectSupport.lambda$doSubmit$3(AsyncExecutionAspectSupport.java:278) ~[conductor-es7-persistence-3.11.3.jar:3.11.3]
	at java.util.concurrent.CompletableFuture$AsyncSupply.run$$$capture(CompletableFuture.java:1700) [?:?]
	at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
	at java.lang.Thread.run(Thread.java:829) [?:?]

Details Conductor version: 3.13.0 Persistence implementation: Redis Queue implementation: Postgres Lock: Redis Workflow definition: Task definition: Event handler definition:

To Reproduce Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior A clear and concise description of what you expected to happen. There should be check to avoid process when workflow info is not found.

Screenshots If applicable, add screenshots to help explain your problem.

Additional context Add any other context about the problem here.

PR for fixing : https://github.com/Netflix/conductor/pull/3313

sks1995 avatar Oct 24 '22 09:10 sks1995