tiagodolphine commented on code in PR #1906:
URL:
https://github.com/apache/incubator-kie-kogito-apps/pull/1906#discussion_r1377689947
##########
data-index/data-index-common/src/main/java/org/kie/kogito/index/service/IndexingService.java:
##########
@@ -69,6 +71,34 @@ public class IndexingService {
Instance<UserTaskInstanceEventMerger> userTaskInstanceMergers;
public void indexProcessInstanceEvent(ProcessInstanceDataEvent<?> event) {
+ //retry in case of rare but possible race condition during the insert
for the first registry
+ ProcessInstance pi = executeWithRetry(event,
this::handleProcessInstanceEvent, "indexing process instance");
+
+ ProcessDefinition definition = pi.getDefinition();
+
+ if (definition != null &&
!manager.getProcessDefinitionsCache().containsKey(definition.getKey())) {
+ //retry in case of rare but possible race condition during the
insert for the first registry
+ executeWithRetry(definition, this::handleProcessDefinition,
"indexing process definition");
Review Comment:
the retry is basically to overcome possible issue during the insert, where
it is not possible to use the lock since the registry is not yet persisted, so
in this situation the retry might solve the issue, for the concurrency in
update we can use the lock at row level.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]