[jboss-user] [JBoss jBPM] - Re: Stale state problem kills process instance?

msandoz do-not-reply at jboss.com
Fri Jul 27 14:37:22 EDT 2007


We're working on reproducing this in the simplest manner possible. so far it seems not to happen on HSQL. 

i didnt want to add it in as a jira ticket until i was sure it wasnt just a configuration blunder. 

here are the steps we took though to reproduce the issue:

1. jbpm 3.2.1 deployed from the available EAR onto JBoss AS 4.0.5GA (on another machine we just have the console war and the behaviour is the same)
2. postgres 8.2
3. JDK 1.5
4. standard postgres jbpm-ds.xml
5. deploy the process, literally, Start->Fork->Join->End
6. start an instance from the web console

We got a stacktrace with the remote debugger as below. The error seems to be that it is trying to update the version of the parent token using lock while it is executing the join. the hibernate code in the trace is trying to execute an update to increment the version of the token and receiving a 0 record count from the update. it thinks that means that the where clause failed and therefore it's looking for an obsolete version to update. 

if you still think this may be a bug as opposed to misconfiguration, i will enter a jira ticket for it. 


  | 14:21:56,810 ERROR [STDERR] org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.jbpm.graph.exe.Token#41]
  | 
  |         at org.hibernate.persister.entity.AbstractEntityPersister.forceVersionIncrement(AbstractEntityPersister.java:1191)
  | 
  |         at org.hibernate.event.def.AbstractLockUpgradeEventListener.upgradeLock(AbstractLockUpgradeEventListener.java:82)
  | 
  |         at org.hibernate.event.def.DefaultLockEventListener.onLock(DefaultLockEventListener.java:64)
  | 
  |         at org.hibernate.impl.SessionImpl.fireLock(SessionImpl.java:584)
  | 
  |         at org.hibernate.impl.SessionImpl.lock(SessionImpl.java:576)
  | 
  |         at org.jbpm.graph.node.Join.execute(Join.java:110)
  | 
  |         at org.jbpm.graph.def.Node.enter(Node.java:318)
  | 
  |         at sun.reflect.GeneratedMethodAccessor222.invoke(Unknown Source)
  | 
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 
  |         at java.lang.reflect.Method.invoke(Method.java:585)
  | 
  |         at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:185)
  | 
  |         at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$205a4b1d.enter(<generated>)
  | 
  |         at org.jbpm.graph.def.Transition.take(Transition.java:151)
  | 
  |         at org.jbpm.graph.def.Node.leave(Node.java:393)
  | 
  |         at org.jbpm.graph.def.Node.leave(Node.java:357)
  | 
  |         at org.jbpm.graph.node.Fork.execute(Fork.java:142)
  | 
  |         at org.jbpm.graph.def.Node.enter(Node.java:318)
  | 
  |         at sun.reflect.GeneratedMethodAccessor222.invoke(Unknown Source)
  | 
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 
  |         at java.lang.reflect.Method.invoke(Method.java:585)
  | 
  |         at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:185)
  | 
  |         at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$205a4b1d.enter(<generated>)
  | 
  |         at org.jbpm.graph.def.Transition.take(Transition.java:151)
  | 
  |         at org.jbpm.graph.def.Node.leave(Node.java:393)
  | 
  |         at org.jbpm.graph.node.StartState.leave(StartState.java:70)
  | 
  |         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 
  |         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  | 
  |         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 
  |         at java.lang.reflect.Method.invoke(Method.java:585)
  | 
  |         at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.invoke(CGLIBLazyInitializer.java:185)
  | 
  |         at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$205a4b1d.leave(<generated>)
  | 
  |         at org.jbpm.graph.exe.Token.signal(Token.java:194)
  | 
  |         at org.jbpm.graph.exe.Token.signal(Token.java:165)
  | 
  |         at org.jbpm.jsf.core.action.StartProcessActionListener.handleAction(StartProcessActionListener.java:70)
  | 
  |         at org.jbpm.jsf.core.impl.JbpmActionListenerWrapper.processAction(JbpmActionListenerWrapper.java:82)
  | 
  |         at javax.faces.event.ActionEvent.processListener(ActionEvent.java:77)
  | 
  |         at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:758)
  | 
  |         at javax.faces.component.UICommand.broadcast(UICommand.java:368)
  | 
  |         at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:448)
  | 
  |         at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
  | 
  |         at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
  | 
  |         at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:248)
  | 
  |         at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
  | 
  |         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
  | 
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
  | 
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  | 
  |         at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
  | 
  |         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
  | 
  |         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  | 
  |         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
  | 
  |         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
  | 
  |         at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
  | 
  |         at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
  | 
  |         at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
  | 
  |         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
  | 
  |         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
  | 
  |         at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
  | 
  |         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
  | 
  |         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
  | 
  |         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
  | 
  |         at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
  | 
  |         at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
  | 
  |         at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
  | 
  |         at java.lang.Thread.run(Thread.java:595)
  | 

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4068338#4068338

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4068338



More information about the jboss-user mailing list