Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1116020

Summary: business_central throws NPE by trying to abort a process that "processInstanceByteArray" is null
Product: [Retired] JBoss BPMS Platform 6 Reporter: Amana <ajuricic>
Component: Business CentralAssignee: Marco Rietveld <mrietvel>
Status: CLOSED EOL QA Contact: Lukáš Petrovický <lpetrovi>
Severity: medium Docs Contact:
Priority: high    
Version: 6.0.1CC: ajuricic, kverlaen, tuongnk
Target Milestone: ER3   
Target Release: 6.1.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-03-27 20:05:37 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Amana 2014-07-03 14:01:10 UTC
Description of problem:

The issue reported in "JBPM-3722" is reproducible in BPM Suite 6 when using Mysql. It seems like the issue has been fixed only for databases that uses sequences.

I created a simple process and forced an exception when starting it. The process data is stored in processinstanceinfo table, but "processinstancebytearray" is null. Then it is not possible to abort the process.

Version-Release number of selected component (if applicable):

BPM Suite 6
Mysql (tested on 5.1 version)

How reproducible:

Always

Steps to Reproduce:
1. Setup your BPM Suite to use Mysql as external database
2. Create a really simple process using "Manual Task". It will not be needed to add anything to that as it should throw an exception after starting.
3. Save process/ Deploy project/ Start process


Actual results:

It will throw an error in console and in server.log:
10:46:31,959 WARN  [org.drools.persistence.SingleSessionCommandService] (http-localhost.localdomain/127.0.0.1:8080-5) Could not commit session: org.jbpm.workflow.instance.WorkflowRuntimeException: [project1.sample4:3 - :2] -- Could not find work item handler for Manual Task

But the rollback will not be performed and data will be stored in processinstanceinfo and processinstancelog.


Expected results:

It should rollback the transaction.


Additional info:

A workaround exist: You can delete the process manually in database using the following queries:

delete from ProcessInstanceInfo where InstanceId=XX;
delete from ProcessInstanceLog where processInstanceId=XX;

Note: Make sure you are deleting the right process.

Comment 1 Amana 2014-07-03 14:02:16 UTC
Other important information. I performed same test with postgres and it worked well.

Comment 4 Maciej Swiderski 2014-09-16 16:02:26 UTC
I tried to reproduce it but unfortunately no luck. One question that maybe is affecting it I use InnoDB dialect for MySQL and version of my server is 5.5.28

Amana, would it be possible to try with InnoDB dialect and maybe newer version of MySQL to see if that's still an issue?

Comment 5 Maciej Swiderski 2014-11-17 12:13:59 UTC
marking this as modified as there should be no way to actually have empty byte array for process  instance or session as change was applied to trigger protnbuf serialization based on transaction sync instead of entity listeners which was flush specific and could cause invalid data to be persisted. So let's retest it and see if that is still a problem.

Comment 6 Amana 2014-11-17 16:44:44 UTC
>> Amana, would it be possible to try with InnoDB dialect and maybe newer version of MySQL to see if that's still an issue?


Sorry for the delay to answer back. I performed some tests today using the following evn:

 - Mysql 5.5
 - InnoDB dialect
 - BPM Suite 6.0.1

It worked well.

Comment 7 Pavel Kralik 2015-04-07 09:36:56 UTC
BPMS 6.1.0.CR1

Comment 8 Max 2017-03-10 09:55:46 UTC
I had the same issue when upgrading Drools/Jbpm from 5.5.0 to 6.5.0, ie: column processInstanceByteArray is NULL. The cause is using wrong protobuf-java version. When I changed protobuf-java-2.5.0.jar to protobuf-java-2.6.0.jar, the issue is fixed.