-
Feature Request
-
Resolution: Done
-
L3 - Default
-
None
-
L
In the situation described in here: https://docs.camunda.org/optimize/latest/technical-guide/optimize-explained/engine-data-deletion/#manual-deletion-of-deployments-definitions there is currently no easy way to recover for users to a stable system in certain scenarios.
1. There were two unfinished process instances in Camunda and Optimize.
2. I removed process and all process instances on Camunda, as this is a test environment.
3. I redeployed the diagram and started creating new data.All seemed fine except that the two initial process instances are still in Optimize and breaking up my statistics.Just a few minutes ago we even saw that the server logs was filled completely with error logs of Optimize trying to get details of the removed process instances.
The error:
Caused by: org.camunda.bpm.engine.exception.NullValueException: no deployed process definition found with id 'Process_0tmap02:2:61737386-8ea7-11ea-9f09-42010af0002a': processDefinition is null at jdk.internal.reflect.GeneratedConstructorAccessor97.newInstance(Unknown Source) at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481) at org.camunda.bpm.engine.impl.util.EnsureUtil.generateException(EnsureUtil.java:381) at org.camunda.bpm.engine.impl.util.EnsureUtil.ensureNotNull(EnsureUtil.java:55) at org.camunda.bpm.engine.impl.util.EnsureUtil.ensureNotNull(EnsureUtil.java:50) at org.camunda.bpm.engine.impl.persistence.deploy.cache.ProcessDefinitionCache.checkDefinitionFound(ProcessDefinitionCache.java:47) at org.camunda.bpm.engine.impl.persistence.deploy.cache.ProcessDefinitionCache.checkDefinitionFound(ProcessDefinitionCache.java:28) at org.camunda.bpm.engine.impl.persistence.deploy.cache.ResourceDefinitionCache.findDeployedDefinitionById(ResourceDefinitionCache.java:55) at org.camunda.bpm.engine.impl.persistence.deploy.cache.DeploymentCache.findDeployedProcessDefinitionById(DeploymentCache.java:77) at org.camunda.bpm.engine.impl.cmd.GetDeploymentProcessModelCmd.execute(GetDeploymentProcessModelCmd.java:53) at org.camunda.bpm.engine.impl.cmd.GetDeploymentProcessModelCmd.execute(GetDeploymentProcessModelCmd.java:37) at org.camunda.bpm.engine.impl.interceptor.CommandExecutorImpl.execute(CommandExecutorImpl.java:28) at org.camunda.bpm.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:107) at org.camunda.bpm.engine.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:46) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) at org.camunda.bpm.engine.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:44) at org.camunda.bpm.engine.impl.interceptor.ProcessApplicationContextInterceptor.execute(ProcessApplicationContextInterceptor.java:70) at org.camunda.bpm.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33) at org.camunda.bpm.engine.impl.RepositoryServiceImpl.getProcessModel(RepositoryServiceImpl.java:284) at org.camunda.bpm.engine.rest.sub.repository.impl.ProcessDefinitionResourceImpl.getProcessDefinitionBpmn20Xml(ProcessDefinitionResourceImpl.java:256) ... 71 more
Potentially there are better ways in Optimize to handle this, e.g. recognize that a process definition was deleted in the engine based on the history in the engine.
This is the controller panel for Smart Panels app
1.
|
The user documentation is updated on how Optimize handles data deletion | Done | Unassigned | |
2.
|
Always continue the import if engine data has been deleted | Done | Unassigned | |
3.
|
Only show unique versions in the definition selection | Done | Unassigned | |
4.
|
Save already imported definitions with key/version/tenant as deleted | Done | Unassigned | |
5.
|
Migrate currently imported definitions to be marked as not deleted | Done | Unassigned |