Uploaded image for project: 'jBPM'
  1. jBPM
  2. JBPM-9970

Process instance migration does not update command data

XMLWordPrintable

      We have a process containing an async node that executes a custom WIH. In the current kjar, this custom WIH is faulty, leading to the async job in ERROR state after the retry attempts are exhausted.

      To address this, we have followed these steps:

      1. Fix the WIH implementation
      2. Deploy a new container v2 with the fixed WIH implementation (no changes to the bpmn file)
      3. Migrate the process instance

      When we now try to requeue the ERROR job using the admin API, we expect the process to execute the corrected WIH. However, the execution of the job fails:

      14:37:12,771 WARN  [org.jbpm.executor.impl.AbstractAvailableJobsExecutor] (EE-ManagedThreadFactory-default-Thread-1) Error during command org.jbpm.process.core.async.AsyncSignalEventCommand error message No session found for context 100025: org.kie.internal.runtime.manager.SessionNotFoundException: No session found for context 100025
      	at deployment.kie-server.war//org.jbpm.runtime.manager.impl.PerProcessInstanceRuntimeManager$PerProcessInstanceInitializer.initKieSession(PerProcessInstanceRuntimeManager.java:572)
      	at deployment.kie-server.war//org.jbpm.runtime.manager.impl.RuntimeEngineImpl.internalGetKieSession(RuntimeEngineImpl.java:163)
      	at deployment.kie-server.war//org.jbpm.runtime.manager.impl.RuntimeEngineImpl.getKieSession(RuntimeEngineImpl.java:74)
      	at deployment.kie-server.war//org.jbpm.process.core.async.AsyncSignalEventCommand.execute(AsyncSignalEventCommand.java:53)
      	at deployment.kie-server.war//org.jbpm.executor.impl.AbstractAvailableJobsExecutor.executeGivenJob(AbstractAvailableJobsExecutor.java:135)
      	at deployment.kie-server.war//org.jbpm.executor.impl.AvailableJobsExecutor.executeJob(AvailableJobsExecutor.java:33)
      	at deployment.kie-server.war//org.jbpm.executor.impl.concurrent.PrioritisedRunnable.run(PrioritisedRunnable.java:47)
      	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
      	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
      	at deployment.kie-server.war//org.jbpm.executor.impl.concurrent.PrioritisedScheduledFutureTask.run(PrioritisedScheduledFutureTask.java:41)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
      	at java.base/java.lang.Thread.run(Thread.java:834)
      	at org.glassfish.javax.enterprise.concurrent@1.0.0.redhat-1//org.glassfish.enterprise.concurrent.ManagedThreadFactoryImpl$ManagedThread.run(ManagedThreadFactoryImpl.java:250)
      

      Retrieving the job details, we can see that the AsyncSignalEventCommand stored with the job still holds a reference to the old KieContainer, so has not been updated during the migration.

              rhn-support-egonzale Enrique Gonzalez Martinez (Inactive)
              rhn-support-egonzale Enrique Gonzalez Martinez (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: