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

Process instance migration does not update command data

    XMLWordPrintable

Details

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: