[
http://jira.jboss.com/jira/browse/JBPM-983?page=comments#action_12367519 ]
Tom Baeyens commented on JBPM-983:
----------------------------------
Guys, it would be helpful if you could summarize how you see violations against the
following intended operation:
* StaleObjectStateException are to be expected and don't mean it's not working
* Getting stuck in a join *is* definitely a problem. I would need help in setting up the
right environment to reproduce this: what database ? what isolation level you use for the
driver ?
* The idea is that each thread operates according the following procedure:
1) in a first transaction, every thread tries to write its own name in the lockOwner field
of a job that needs to be executed. (all exclusive jobs are locked in the same
transaction)
2) if the first transaction succeeds, a new transaction is started for each of the locked
jobs. in each of these transactions, the job record is deleted together with executing
it.
3) if the first transaction fails, it means that another thread has beat this thread to it
in writing its name into the lockOwner field. in that case, the transaction of this
thread is rolled back and a new query is executed to try and acquire jobs as in step 1.
So what I need from you is to get confirmation that it's not just the
StaleObjectException's that you report as a problem. Those can happen. But I would
appreciate all the input on how I can reproduce e.g. a join failure.
Very important is also the database driver and isolation level. I ran some tests with
hsqldb with isolation level 0 so i assumed it worked for everything else.
concurrent process execution fails
----------------------------------
Key: JBPM-983
URL:
http://jira.jboss.com/jira/browse/JBPM-983
Project: JBoss jBPM
Issue Type: Bug
Components: Core Engine
Affects Versions: jBPM jPDL 3.2
Environment: Hypersonic in-memory database, JobExecutor configured with 5
threads
Reporter: Alexander Schlett
Assigned To: Tom Baeyens
Priority: Critical
Fix For: jBPM 3.3
Attachments: SimpleTest.java, SimpleTest.java, SimpleTest.java, SimpleTest.java,
SimpleTest.java
concurrent execution of async nodes with multiple JobExecutor threads fails. the effect
is:
1) job sync within JobExecutor fails due to org.hibernate.StaleObjectStateException
2) process gets stuck in join node and never ends
junit test for this is attached, it's a simple process with just a fork and a join
and some scripts inbetween.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira