[
https://jira.jboss.org/jira/browse/JBPM-2790?page=com.atlassian.jira.plug...
]
Alejandro Guizar resolved JBPM-2790.
------------------------------------
Resolution: Done
Reduced SOSE/deadlock occurrences from 18 to 3 in JBPM2094Test as reported in SOA-1942
thanks to the following improvements:
* End concurrent token when it enters the join node. Check all children of the parent
token have ended when the join executes.
* Make a small pause in the job executor thread before retrying a failed job. Retrying a
failed job too soon will likely produce another SOSE or deadlock.
For best results, the join node should be made asynchronous in order to reduce the window
of opportunity for a locking conflict.
StaleObjectStateException: "Row was updated or deleted by
another transaction" frequently thrown when joining forked tokens
---------------------------------------------------------------------------------------------------------------------------
Key: JBPM-2790
URL:
https://jira.jboss.org/jira/browse/JBPM-2790
Project: jBPM
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Runtime Engine
Affects Versions: jBPM 3.2.7
Reporter: Pavel Macik
Assignee: Alejandro Guizar
Priority: Blocker
Fix For: jBPM 3.2.9
Original Estimate: 0 minutes
Remaining Estimate: 0 minutes
When executing the performance test
(
https://svn.devel.redhat.com/repos/jboss-soa/trunk/qa/tests/quickstarts/p...)
the server processes the messages. After some time it starts to throw following exception
traces over and over again. it flood the server's log.
2010-02-10 09:54:52,736 INFO [org.hibernate.event.def.DefaultLoadEventListener]
(WorkManager(2)-92) Error performing load command
org.hibernate.StaleObjectStateException: Row was updated or deleted by another
transaction (or unsaved-value mapping was incorrect): [org.jbpm.graph.exe.Token#392]
at
org.hibernate.dialect.lock.SelectLockingStrategy.lock(SelectLockingStrategy.java:102)
at
org.hibernate.persister.entity.AbstractEntityPersister.lock(AbstractEntityPersister.java:1351)
at
org.hibernate.event.def.AbstractLockUpgradeEventListener.upgradeLock(AbstractLockUpgradeEventListener.java:108)
at
org.hibernate.event.def.DefaultLoadEventListener.loadFromSessionCache(DefaultLoadEventListener.java:488)
at
org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:378)
at
org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:165)
at
org.hibernate.event.def.DefaultLoadEventListener.lockAndLoad(DefaultLoadEventListener.java:341)
at
org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:129)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:906)
at org.hibernate.impl.SessionImpl.load(SessionImpl.java:887)
at org.hibernate.impl.SessionImpl.load(SessionImpl.java:882)
at org.jbpm.graph.node.Join.execute(Join.java:120)
at org.jbpm.graph.def.Node.enter(Node.java:375)
at sun.reflect.GeneratedMethodAccessor647.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:197)
at org.jbpm.graph.def.Node_$$_javassist_127.enter(Node_$$_javassist_127.java)
at org.jbpm.graph.def.Transition.take(Transition.java:151)
at org.jbpm.graph.def.Node.leave(Node.java:453)
at sun.reflect.GeneratedMethodAccessor643.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:197)
at org.jbpm.graph.def.Node_$$_javassist_127.leave(Node_$$_javassist_127.java)
at org.jbpm.graph.exe.Token.signal(Token.java:214)
at org.jbpm.graph.exe.Token.signal(Token.java:143)
at sun.reflect.GeneratedMethodAccessor642.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:197)
at org.jbpm.graph.exe.Token_$$_javassist_60.signal(Token_$$_javassist_60.java)
at org.jbpm.command.SignalCommand.execute(SignalCommand.java:97)
at
org.jboss.soa.esb.services.jbpm.cmd.AsyncProcessSignal$AsyncSignalAction.execute(AsyncProcessSignal.java:304)
at org.jbpm.graph.def.Action.execute(Action.java:137)
at sun.reflect.GeneratedMethodAccessor604.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:197)
at org.jbpm.graph.def.Action_$$_javassist_80.execute(Action_$$_javassist_80.java)
at org.jbpm.graph.def.GraphElement.executeAction(GraphElement.java:280)
at sun.reflect.GeneratedMethodAccessor637.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:197)
at org.jbpm.graph.def.Node_$$_javassist_127.executeAction(Node_$$_javassist_127.java)
at org.jbpm.job.ExecuteActionJob.execute(ExecuteActionJob.java:33)
at sun.reflect.GeneratedMethodAccessor635.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:197)
at org.jbpm.job.Job_$$_javassist_131.execute(Job_$$_javassist_131.java)
at
org.jboss.soa.esb.services.jbpm.integration.job.ExecuteJobCommand.executeJob(ExecuteJobCommand.java:124)
at
org.jboss.soa.esb.services.jbpm.integration.job.ExecuteJobCommand.execute(ExecuteJobCommand.java:92)
at
org.jboss.soa.esb.services.jbpm.integration.command.AbstractMessageListener.onMessage(AbstractMessageListener.java:66)
at
org.jboss.soa.esb.services.jbpm.integration.command.JobListener.onMessage(JobListener.java:16)
at sun.reflect.GeneratedMethodAccessor625.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.jboss.internal.soa.esb.dependencies.JCAInflowAdapter$1.invoke(JCAInflowAdapter.java:276)
at org.jboss.soa.esb.listeners.jca.EndpointProxy.delivery(EndpointProxy.java:258)
at org.jboss.soa.esb.listeners.jca.EndpointProxy.invoke(EndpointProxy.java:150)
at $Proxy245.onMessage(Unknown Source)
at
org.jboss.resource.adapter.jms.inflow.JmsServerSession.onMessage(JmsServerSession.java:179)
at
org.jboss.jms.client.container.ClientConsumer.callOnMessageStatic(ClientConsumer.java:160)
at org.jboss.jms.client.container.SessionAspect.handleRun(SessionAspect.java:831)
at
org.jboss.aop.advice.org.jboss.jms.client.container.SessionAspect_z_handleRun_184993470.invoke(SessionAspect_z_handleRun_184993470.java)
at
org.jboss.jms.client.delegate.ClientSessionDelegate$run_N8003352271541955702.invokeNext(ClientSessionDelegate$run_N8003352271541955702.java)
at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:86)
at
org.jboss.jms.client.delegate.ClientSessionDelegate$run_N8003352271541955702.invokeNext(ClientSessionDelegate$run_N8003352271541955702.java)
at org.jboss.jms.client.delegate.ClientSessionDelegate.run(ClientSessionDelegate.java)
at org.jboss.jms.client.JBossSession.run(JBossSession.java:199)
at
org.jboss.resource.adapter.jms.inflow.JmsServerSession.run(JmsServerSession.java:236)
at org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:205)
at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:260)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira