[
https://issues.jboss.org/browse/JBPM-2790?page=com.atlassian.jira.plugin....
]
Alejandro Guizar edited comment on JBPM-2790 at 12/9/10 12:11 PM:
------------------------------------------------------------------
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. The join node should be made asynchronous to
reduce the window of opportunity for a locking conflict. (work from JBPM-2787)
* 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.
was (Author: alex.guizar(a)jboss.com):
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://issues.jboss.org/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.
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira