Details
-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
7.64.0.Final
-
None
-
False
-
False
-
NEW
-
NEW
Description
When clicking on "Manage" within Business Central multiple queries are sent to kie-servers
10.1.1.1 - user1 [24/Feb/2022:11:05:18 +0000] "POST /kie-server/services/rest/server/queries/definitions/jbpmProcessInstances/filtered-data?mapper=RawList&page=0&pageSize=10 HTTP/1.1" 200 7064 9821
10.1.1.1 - user1 [24/Feb/2022:11:05:20 +0000] "POST /kie-server/services/rest/server/queries/definitions/jbpmProcessInstances/filtered-data?mapper=RawList&page=0&pageSize=-1 HTTP/1.1" 200 767 1785
10.1.1.1 - user1 [24/Feb/2022:11:05:20 +0000] "POST /kie-server/services/rest/server/queries/definitions/jbpmProcessInstances/filtered-data?mapper=RawList&page=0&pageSize=-1 HTTP/1.1" 200 767 1886
10.1.1.1 - user1 [24/Feb/2022:11:05:21 +0000] "POST /kie-server/services/rest/server/queries/definitions/jbpmProcessInstances/filtered-data?mapper=RawList&page=0&pageSize=-1 HTTP/1.1" 200 407 1572
The SQL for the "pageSize=10" is:
SELECT processinstanceid
,processid
,start_date
,end_date
,status
,parentprocessinstanceid
,outcome
,duration
,user_identity
,processversion
,processname
,correlationkey
,externalid
,processinstancedescription
,sla_due_date
,slacompliance
,lastmodificationdate
,errorcount
FROM (SELECT log.processinstanceid
,log.processid
,log.start_date
,log.end_date
,log.status
,log.parentprocessinstanceid
,log.outcome
,log.duration
,log.user_identity
,log.processversion
,log.processname
,log.correlationkey
,log.externalid
,log.processinstancedescription
,log.sla_due_date
,log.slacompliance
,coalesce(info.lastmodificationdate, log.end_date) AS lastmodificationdate
,(SELECT COUNT(errinfo.id)
FROM executionerrorinfo errinfo
WHERE errinfo.process_inst_id = log.processinstanceid
AND errinfo.error_ack = 0) AS errorcount
FROM processinstancelog log
LEFT JOIN processinstanceinfo info
ON info.instanceid = log.processinstanceid) "dbSQL"
WHERE status = 1.0
ORDER BY start_date DESC
FETCH FIRST 10 rows ONLY
However, one of those other request runs:
SELECT parentprocessinstanceid "parentProcessInstanceId"
FROM (SELECT log.processinstanceid
,log.processid
,log.start_date
,log.end_date
,log.status
,log.parentprocessinstanceid
,log.outcome
,log.duration
,log.user_identity
,log.processversion
,log.processname
,log.correlationkey
,log.externalid
,log.processinstancedescription
,log.sla_due_date
,log.slacompliance
,coalesce(info.lastmodificationdate, log.end_date) AS lastmodificationdate
,(SELECT COUNT(errinfo.id)
FROM executionerrorinfo errinfo
WHERE errinfo.process_inst_id = log.processinstanceid
AND errinfo.error_ack = 0) AS errorcount
FROM processinstancelog log
LEFT JOIN processinstanceinfo info
ON info.instanceid = log.processinstanceid) "dbSQL"
WHERE parentprocessinstanceid <> -1
GROUP BY parentprocessinstanceid
ORDER BY parentprocessinstanceid ASC
This particular environment has 7M+ processes in the database, within 5 minutes the kie-server is consuming all available CPU
As a workaround we've disabled Business Central
I think the problematic code might be in https://github.com/kiegroup/jbpm-wb/blob/main/jbpm-wb-process-runtime/jbpm-wb-process-runtime-client/src/main/java/org/jbpm/workbench/pr/client/editors/instance/list/ProcessInstanceListPresenter.java or maybe https://github.com/kiegroup/jbpm-wb/blob/main/jbpm-wb-process-runtime/jbpm-wb-process-runtime-client/src/main/java/org/jbpm/workbench/pr/client/editors/instance/list/ProcessInstanceListViewImpl.java
We've only been able to reproduce this issue in environments with 1M+ processes
I've attached threaddumps taken from affected kie-servers when they've been maxing CPU