|
|
| 1 2 |
|
Matt Raible-3
|
All,
Ever since I deployed 1.9.1 to appfuse.org, Tomcat has been spewing OutOfMemory (OOM) errors. It only takes about a minute or two after a restart to get them, which really sucks. I've been doing some profiling this evening and haven't been able to find anything that definitive. However, it seems that Tapestry and JSF are the worst offenders. I can add the other application flavors, and the memory usage gradually goes up as I click through the apps. If I stop clicking, thing stabilize. With JSF, it shoots up and and keeps climbing - almost up 150K. The heap size and stats in JProfiler look good, but Windows Task Manager shows JSF supplying the biggest hit. Does anyone have the time to profile any of the AppFuse flavors? I can send you any information you might need. Thanks, Matt --------------------------------------------------------------------- To unsubscribe, e-mail: [hidden email] For additional commands, e-mail: [hidden email] |
||||||||||||||||
|
Sanjiv Jivan
|
I could give it a shot.
On 4/17/06, Matt Raible <[hidden email]> wrote:
All, |
||||||||||||||||
|
Sanjiv Jivan
|
In reply to this post
by Matt Raible-3
Matt,
I'm unable to reproduce this locally. I'm on XP, Tomcat 5.5.16, MySQL 4.1. Did you have a lot of data in your database? I've been clicking on links/ update/ sort etc for 10 - 15 minutes but the app does not raise an OOM error and the task manager memory footprint also reduces once I stop clicking and settles back to the low value after GC is done. Maybe someone else could try reproducing this. btw what JVM heap size are you running with? And at what memory size are you running out of memory. Do you have a stack trace?
I did notice another thing though while manually stress testing it. Clicking on the the save button of a user reached from "View Users" in rapid succession yields the following exception. I haven't investigated this yet but this probably occurs when multiple threads are trying to update the record concurrently. Not sure if this exception is by design for Hibernate optimistic locking. [appfuse-jsf] ERROR [http-8080-Processor23] AbstractFlushingEventListener.performExecutions(300) | Could not synchronize
database state with session org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.appfuse.model.User#2] at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1635) at org.hibernate.persister.entity.AbstractEntityPersister.update (AbstractEntityPersister.java:2208) at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2118) at org.hibernate.persister.entity.AbstractEntityPersister.update (AbstractEntityPersister.java:2374) at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:91) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248) at org.hibernate.engine.ActionQueue.executeActions (ActionQueue.java:232) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140) On 4/17/06, Matt Raible <[hidden email]> wrote:
All, [appfuse-jsf] ERROR [http-8080-Processor23] AbstractFlushingEventListener.performExecutions(300) | Could not synchronize database state with session org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.appfuse.model.User#2] at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1635) at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2208) at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2118) at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2374) at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:91) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:29 7) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985) at org.springframework.orm.hibernate3.HibernateTemplate$29.doInHibernate(HibernateTemplate.java:815) at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:366) at org.springframework.orm.hibernate3.HibernateTemplate.flush(HibernateTemplate.java:813) at org.appfuse.dao.hibernate.UserDaoHibernate.saveUser(UserDaoHibernate.java:54) at org.appfuse.service.impl.UserManagerImpl.saveUser(UserManagerImpl.java:56) at sun.reflect.GeneratedMethodAccessor415.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java: 181) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170) at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceIntercep tor.java:51) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170) at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor. java:53) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176) at $Proxy1.saveUser(Unknown Source) at org.appfuse.webapp.action.UserForm.save(UserForm.java:138) at sun.reflect.GeneratedMethodAccessor413.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:129) at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:63) at javax.faces.component.UICommand.broadcast(UICommand.java:106) at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:90) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:164) at org.apache.myfaces.lifecycle.LifecycleImpl.invokeApplication(LifecycleImpl.java:316) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:86) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:106) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.appfuse.webapp.filter.MessageFilter.doFilter(MessageFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118) at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:375) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.appfuse.webapp.filter.GZIPFilter.doFilterInternal(GZIPFilter.java:48) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.appfuse.webapp.filter.LocaleFilter.doFilterInternal(LocaleFilter.java:49) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:75) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at com.opensymphony.clickstream.ClickstreamFilter.doFilter(ClickstreamFilter.java:42) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.j ava:174) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:292) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:79) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303) at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:143) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303) at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:138) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303) at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:174) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303) at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestF ilter.java:50) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:246) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.ja va:220) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303) at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:173) at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:120) 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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) 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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595) [appfuse-jsf] ERROR [http-8080-Processor23] [faces].invoke(253) | Servlet.service() for servlet faces threw exception javax.faces.FacesException: Error calling action method of component with id userForm:save at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:74) at javax.faces.component.UICommand.broadcast(UICommand.java:106) at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:90) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:164) at org.apache.myfaces.lifecycle.LifecycleImpl.invokeApplication(LifecycleImpl.java:316) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:86) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:106) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.myfaces.component.html.util.ExtensionsFilter.doFilter(ExtensionsFilter.java:122) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.appfuse.webapp.filter.MessageFilter.doFilter(MessageFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:118) at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:375) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.appfuse.webapp.filter.GZIPFilter.doFilterInternal(GZIPFilter.java:48) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.appfuse.webapp.filter.LocaleFilter.doFilterInternal(LocaleFilter.java:49) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:75) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at com.opensymphony.clickstream.ClickstreamFilter.doFilter(ClickstreamFilter.java:42) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.j ava:174) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:292) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:79) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303) at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:143) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303) at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:138) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303) at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:174) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303) at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestF ilter.java:50) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:246) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.ja va:220) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303) at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:173) at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:120) 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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) 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.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595) Caused by: javax.faces.el.EvaluationException: Exception while invoking expression #{userForm.save} at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:153) at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:63) ... 75 more Caused by: org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.appfuse.model.User#2]; nested exception is org.hibern ate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect ): [org.appfuse.model.User#2] at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.ja va:646) at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:4 13) at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:371) at org.springframework.orm.hibernate3.HibernateTemplate.flush(HibernateTemplate.java:813) at org.appfuse.dao.hibernate.UserDaoHibernate.saveUser(UserDaoHibernate.java:54) at org.appfuse.service.impl.UserManagerImpl.saveUser(UserManagerImpl.java:56) at sun.reflect.GeneratedMethodAccessor415.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:287) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java: 181) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170) at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceIntercep tor.java:51) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170) at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor. java:53) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176) at $Proxy1.saveUser(Unknown Source) at org.appfuse.webapp.action.UserForm.save(UserForm.java:138) at sun.reflect.GeneratedMethodAccessor413.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:129) ... 76 more Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [org.appfuse.model.User#2] at org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1635) at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2208) at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2118) at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2374) at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:91) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:29 7) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985) at org.springframework.orm.hibernate3.HibernateTemplate$29.doInHibernate(HibernateTemplate.java:815) at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:366) ... 98 more --------------------------------------------------------------------- To unsubscribe, e-mail: [hidden email] For additional commands, e-mail: [hidden email] |
|
Matt Raible-3
|
On 4/17/06, Sanjiv Jivan <[hidden email]> wrote:
> > Matt, > I'm unable to reproduce this locally. I'm on XP, Tomcat 5.5.16, MySQL 4.1. > Did you have a lot of data in your database? I've been clicking on links/ > update/ sort etc for 10 - 15 minutes but the app does not raise an OOM error > and the task manager memory footprint also reduces once I stop clicking and > settles back to the low value after GC is done. Maybe someone else could try > reproducing this. btw what JVM heap size are you running with? And at what > memory size are you running out of memory. Do you have a stack trace? I have my JAVA_OPTS set to -Xms256M -Xmx384M. I run out of memory around 550MB +. I don't have a stack trace, but I can get one if you'd like. I'm using JProfiler when I get the error. > > I did notice another thing though while manually stress testing it. Clicking > on the the save button of a user reached from > "View Users" in rapid succession yields the following exception. I haven't > investigated this yet but this probably occurs when multiple threads are > trying to update the record concurrently. Not sure if this exception is by > design for Hibernate optimistic locking. This is b/c we're using versioning on the User object. I left it in their since it seems like a useful feature. In other words, it's expected behavior. Matt > > [appfuse-jsf] ERROR [http-8080-Processor23] > AbstractFlushingEventListener.performExecutions(300) | > Could not synchronize > database state with session > org.hibernate.StaleObjectStateException: Row was updated or > deleted by another transaction (or unsaved-value mapping was > incorrect): [org.appfuse.model.User#2] > at > org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1635) > at > org.hibernate.persister.entity.AbstractEntityPersister.update > (AbstractEntityPersister.java:2208) > at > org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2118) > at > org.hibernate.persister.entity.AbstractEntityPersister.update > (AbstractEntityPersister.java:2374) > at > org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:91) > at > org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248) > at org.hibernate.engine.ActionQueue.executeActions > (ActionQueue.java:232) > at > org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140) > > > On 4/17/06, Matt Raible <[hidden email]> wrote: > > > All, > > Ever since I deployed 1.9.1 to appfuse.org, Tomcat has been spewing > OutOfMemory (OOM) errors. It only takes about a minute or two after a > restart to get them, which really sucks. I've been doing some > profiling this evening and haven't been able to find anything that > definitive. However, it seems that Tapestry and JSF are the worst > offenders. I can add the other application flavors, and the memory > usage gradually goes up as I click through the apps. If I stop > clicking, thing stabilize. With JSF, it shoots up and and keeps > climbing - almost up 150K. The heap size and stats in JProfiler look > good, but Windows Task Manager shows JSF supplying the biggest hit. > > Does anyone have the time to profile any of the AppFuse flavors? I > can send you any information you might need. > > Thanks, > > Matt > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: > [hidden email] > For additional commands, e-mail: [hidden email] > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: > [hidden email] > For additional commands, e-mail: [hidden email] > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [hidden email] For additional commands, e-mail: [hidden email] |
||||||||||||||||
|
Sanjiv Jivan
|
How large is your dataset? I haven't altered the default tomcat Xmx and still didn't get an OOM error. Its going to be difficult for me to troubleshoot without being able to reproduce the issue. Not sure if it will help, but maybe I can also try analysing your JProfiler snapshot at a point when you're see this issue.
On 4/17/06, Matt Raible <[hidden email]> wrote:
On 4/17/06, Sanjiv Jivan <[hidden email]> wrote: |
||||||||||||||||
|
Matt Raible-3
|
I just used a normal database created by AppFuse. The Struts Resume
and wiki datasets are quite a bit larger, but I took them out of the mix. I'll try to come up with a more definitive way to reproduce in the next day or two. Matt On 4/17/06, Sanjiv Jivan <[hidden email]> wrote: > > How large is your dataset? I haven't altered the default tomcat Xmx and > still didn't get an OOM error. Its going to be difficult for me to > troubleshoot without being able to reproduce the issue. Not sure if it will > help, but maybe I can also try analysing your JProfiler snapshot at a point > when you're see this issue. > > > On 4/17/06, Matt Raible <[hidden email]> wrote: > > > On 4/17/06, Sanjiv Jivan <[hidden email]> wrote: > > > > Matt, > > I'm unable to reproduce this locally. I'm on XP, Tomcat 5.5.16, MySQL 4.1. > > Did you have a lot of data in your database? I've been clicking on links/ > > update/ sort etc for 10 - 15 minutes but the app does not raise an OOM > error > > and the task manager memory footprint also reduces once I stop clicking > and > > settles back to the low value after GC is done. Maybe someone else could > try > > reproducing this. btw what JVM heap size are you running with? And at what > > memory size are you running out of memory. Do you have a stack trace? > > I have my JAVA_OPTS set to -Xms256M -Xmx384M. I run out of memory > around 550MB +. > > I don't have a stack trace, but I can get one if you'd like. I'm > using JProfiler when I get the error. > > > > > I did notice another thing though while manually stress testing it. > Clicking > > on the the save button of a user reached from > > "View Users" in rapid succession yields the following exception. I > haven't > > investigated this yet but this probably occurs when multiple threads are > > trying to update the record concurrently. Not sure if this exception is by > > design for Hibernate optimistic locking. > > This is b/c we're using versioning on the User object. I left it in > their since it seems like a useful feature. In other words, it's > expected behavior. > > Matt > > > > > [appfuse-jsf] ERROR [http-8080-Processor23] > > AbstractFlushingEventListener.performExecutions(300) | > > Could not synchronize > > database state with session > > org.hibernate.StaleObjectStateException: Row was updated > or > > deleted by another transaction (or unsaved-value mapping was > > incorrect): [org.appfuse.model.User#2] > > at > > > org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1635) > > at > > > org.hibernate.persister.entity.AbstractEntityPersister.update > > (AbstractEntityPersister.java:2208) > > at > > > org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2118) > > at > > > org.hibernate.persister.entity.AbstractEntityPersister.update > > (AbstractEntityPersister.java:2374) > > at > > > org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:91) > > at > > org.hibernate.engine.ActionQueue.execute(ActionQueue.java > :248) > > at > org.hibernate.engine.ActionQueue.executeActions > > (ActionQueue.java:232) > > at > > > org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140) > > > > > > On 4/17/06, Matt Raible < [hidden email]> wrote: > > > > > All, > > > > Ever since I deployed 1.9.1 to appfuse.org, Tomcat has been spewing > > OutOfMemory (OOM) errors. It only takes about a minute or two after a > > restart to get them, which really sucks. I've been doing some > > profiling this evening and haven't been able to find anything that > > definitive. However, it seems that Tapestry and JSF are the worst > > offenders. I can add the other application flavors, and the memory > > usage gradually goes up as I click through the apps. If I stop > > clicking, thing stabilize. With JSF, it shoots up and and keeps > > climbing - almost up 150K. The heap size and stats in JProfiler look > > good, but Windows Task Manager shows JSF supplying the biggest hit. > > > > Does anyone have the time to profile any of the AppFuse flavors? I > > can send you any information you might need. > > > > Thanks, > > > > Matt > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: > > [hidden email] > > For additional commands, e-mail: [hidden email] > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: > > [hidden email] > > For additional commands, e-mail: [hidden email] > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: > [hidden email] > For additional commands, e-mail: [hidden email] > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [hidden email] For additional commands, e-mail: [hidden email] |
||||||||||||||||
|
Mika Göckel
|
What about setting up a load test scenario with canoo (if this is
possible) or JMeter. Manually clicking around didn't show up OOMs on my system either. Its appfuse latest CVS with jsf (tried struts as well), tomcat 5.5.9, mysql 4.1.15 on XP. Matt Raible schrieb: > I just used a normal database created by AppFuse. The Struts Resume > and wiki datasets are quite a bit larger, but I took them out of the > mix. I'll try to come up with a more definitive way to reproduce in > the next day or two. > > Matt > > On 4/17/06, Sanjiv Jivan <[hidden email]> wrote: > >> How large is your dataset? I haven't altered the default tomcat Xmx and >> still didn't get an OOM error. Its going to be difficult for me to >> troubleshoot without being able to reproduce the issue. Not sure if it will >> help, but maybe I can also try analysing your JProfiler snapshot at a point >> when you're see this issue. >> >> >> On 4/17/06, Matt Raible <[hidden email]> wrote: >> >> On 4/17/06, Sanjiv Jivan <[hidden email]> wrote: >> >>> Matt, >>> I'm unable to reproduce this locally. I'm on XP, Tomcat 5.5.16, MySQL 4.1. >>> Did you have a lot of data in your database? I've been clicking on links/ >>> update/ sort etc for 10 - 15 minutes but the app does not raise an OOM >>> >> error >> >>> and the task manager memory footprint also reduces once I stop clicking >>> >> and >> >>> settles back to the low value after GC is done. Maybe someone else could >>> >> try >> >>> reproducing this. btw what JVM heap size are you running with? And at what >>> memory size are you running out of memory. Do you have a stack trace? >>> >> I have my JAVA_OPTS set to -Xms256M -Xmx384M. I run out of memory >> around 550MB +. >> >> I don't have a stack trace, but I can get one if you'd like. I'm >> using JProfiler when I get the error. >> >> >>> I did notice another thing though while manually stress testing it. >>> >> Clicking >> >>> on the the save button of a user reached from >>> "View Users" in rapid succession yields the following exception. I >>> >> haven't >> >>> investigated this yet but this probably occurs when multiple threads are >>> trying to update the record concurrently. Not sure if this exception is by >>> design for Hibernate optimistic locking. >>> >> This is b/c we're using versioning on the User object. I left it in >> their since it seems like a useful feature. In other words, it's >> expected behavior. >> >> Matt >> >> >>> [appfuse-jsf] ERROR [http-8080-Processor23] >>> AbstractFlushingEventListener.performExecutions(300) | >>> Could not synchronize >>> database state with session >>> org.hibernate.StaleObjectStateException: Row was updated >>> >> or >> >>> deleted by another transaction (or unsaved-value mapping was >>> incorrect): [org.appfuse.model.User#2] >>> at >>> >>> >> org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1635) >> >>> at >>> >>> >> org.hibernate.persister.entity.AbstractEntityPersister.update >> >>> (AbstractEntityPersister.java:2208) >>> at >>> >>> >> org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2118) >> >>> at >>> >>> >> org.hibernate.persister.entity.AbstractEntityPersister.update >> >>> (AbstractEntityPersister.java:2374) >>> at >>> >>> >> org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:91) >> >>> at >>> org.hibernate.engine.ActionQueue.execute(ActionQueue.java >>> >> :248) >> >>> at >>> >> org.hibernate.engine.ActionQueue.executeActions >> >>> (ActionQueue.java:232) >>> at >>> >>> >> org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140) >> >>> On 4/17/06, Matt Raible < [hidden email]> wrote: >>> >>> All, >>> >>> Ever since I deployed 1.9.1 to appfuse.org, Tomcat has been spewing >>> OutOfMemory (OOM) errors. It only takes about a minute or two after a >>> restart to get them, which really sucks. I've been doing some >>> profiling this evening and haven't been able to find anything that >>> definitive. However, it seems that Tapestry and JSF are the worst >>> offenders. I can add the other application flavors, and the memory >>> usage gradually goes up as I click through the apps. If I stop >>> clicking, thing stabilize. With JSF, it shoots up and and keeps >>> climbing - almost up 150K. The heap size and stats in JProfiler look >>> good, but Windows Task Manager shows JSF supplying the biggest hit. >>> >>> Does anyone have the time to profile any of the AppFuse flavors? I >>> can send you any information you might need. >>> >>> Thanks, >>> >>> Matt >>> >>> >>> >> --------------------------------------------------------------------- >> >>> To unsubscribe, e-mail: >>> [hidden email] >>> For additional commands, e-mail: [hidden email] >>> >>> >>> >>> >>> >> --------------------------------------------------------------------- >> >>> To unsubscribe, e-mail: >>> [hidden email] >>> For additional commands, e-mail: [hidden email] >>> >>> >>> >>> >> --------------------------------------------------------------------- >> >> To unsubscribe, e-mail: >> [hidden email] >> For additional commands, e-mail: [hidden email] >> >> >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [hidden email] > For additional commands, e-mail: [hidden email] > > -- cyber:con gmbh Mika Göckel Rathausallee 10 53757 Sankt Augustin tel (+49)2241 / 9350 0 fax (+49)2241 / 9350 99 mob (+49) 172 / 279 2771 skype mika.goeckel email [hidden email] --------------------------------------------------------------------- To unsubscribe, e-mail: [hidden email] For additional commands, e-mail: [hidden email] |
||||||||||||||||
|
Matt Raible-3
|
I have a scenario setup with WAPT that I can send. One thing to note
is that these OOM errors only show up when you have all 5 AppFuse flavors installed. Or at least the ones I have on demo.appfuse.org - which includes Spring MVC with iBATIS. Matt On 4/17/06, Mika Göckel <[hidden email]> wrote: > What about setting up a load test scenario with canoo (if this is > possible) or JMeter. > Manually clicking around didn't show up OOMs on my system either. > > Its appfuse latest CVS with jsf (tried struts as well), tomcat 5.5.9, > mysql 4.1.15 on XP. > > Matt Raible schrieb: > > I just used a normal database created by AppFuse. The Struts Resume > > and wiki datasets are quite a bit larger, but I took them out of the > > mix. I'll try to come up with a more definitive way to reproduce in > > the next day or two. > > > > Matt > > > > On 4/17/06, Sanjiv Jivan <[hidden email]> wrote: > > > >> How large is your dataset? I haven't altered the default tomcat Xmx and > >> still didn't get an OOM error. Its going to be difficult for me to > >> troubleshoot without being able to reproduce the issue. Not sure if it will > >> help, but maybe I can also try analysing your JProfiler snapshot at a point > >> when you're see this issue. > >> > >> > >> On 4/17/06, Matt Raible <[hidden email]> wrote: > >> > >> On 4/17/06, Sanjiv Jivan <[hidden email]> wrote: > >> > >>> Matt, > >>> I'm unable to reproduce this locally. I'm on XP, Tomcat 5.5.16, MySQL 4.1. > >>> Did you have a lot of data in your database? I've been clicking on links/ > >>> update/ sort etc for 10 - 15 minutes but the app does not raise an OOM > >>> > >> error > >> > >>> and the task manager memory footprint also reduces once I stop clicking > >>> > >> and > >> > >>> settles back to the low value after GC is done. Maybe someone else could > >>> > >> try > >> > >>> reproducing this. btw what JVM heap size are you running with? And at what > >>> memory size are you running out of memory. Do you have a stack trace? > >>> > >> I have my JAVA_OPTS set to -Xms256M -Xmx384M. I run out of memory > >> around 550MB +. > >> > >> I don't have a stack trace, but I can get one if you'd like. I'm > >> using JProfiler when I get the error. > >> > >> > >>> I did notice another thing though while manually stress testing it. > >>> > >> Clicking > >> > >>> on the the save button of a user reached from > >>> "View Users" in rapid succession yields the following exception. I > >>> > >> haven't > >> > >>> investigated this yet but this probably occurs when multiple threads are > >>> trying to update the record concurrently. Not sure if this exception is by > >>> design for Hibernate optimistic locking. > >>> > >> This is b/c we're using versioning on the User object. I left it in > >> their since it seems like a useful feature. In other words, it's > >> expected behavior. > >> > >> Matt > >> > >> > >>> [appfuse-jsf] ERROR [http-8080-Processor23] > >>> AbstractFlushingEventListener.performExecutions(300) | > >>> Could not synchronize > >>> database state with session > >>> org.hibernate.StaleObjectStateException: Row was updated > >>> > >> or > >> > >>> deleted by another transaction (or unsaved-value mapping was > >>> incorrect): [org.appfuse.model.User#2] > >>> at > >>> > >>> > >> org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java:1635) > >> > >>> at > >>> > >>> > >> org.hibernate.persister.entity.AbstractEntityPersister.update > >> > >>> (AbstractEntityPersister.java:2208) > >>> at > >>> > >>> > >> org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2118) > >> > >>> at > >>> > >>> > >> org.hibernate.persister.entity.AbstractEntityPersister.update > >> > >>> (AbstractEntityPersister.java:2374) > >>> at > >>> > >>> > >> org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:91) > >> > >>> at > >>> org.hibernate.engine.ActionQueue.execute(ActionQueue.java > >>> > >> :248) > >> > >>> at > >>> > >> org.hibernate.engine.ActionQueue.executeActions > >> > >>> (ActionQueue.java:232) > >>> at > >>> > >>> > >> org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140) > >> > >>> On 4/17/06, Matt Raible < [hidden email]> wrote: > >>> > >>> All, > >>> > >>> Ever since I deployed 1.9.1 to appfuse.org, Tomcat has been spewing > >>> OutOfMemory (OOM) errors. It only takes about a minute or two after a > >>> restart to get them, which really sucks. I've been doing some > >>> profiling this evening and haven't been able to find anything that > >>> definitive. However, it seems that Tapestry and JSF are the worst > >>> offenders. I can add the other application flavors, and the memory > >>> usage gradually goes up as I click through the apps. If I stop > >>> clicking, thing stabilize. With JSF, it shoots up and and keeps > >>> climbing - almost up 150K. The heap size and stats in JProfiler look > >>> good, but Windows Task Manager shows JSF supplying the biggest hit. > >>> > >>> Does anyone have the time to profile any of the AppFuse flavors? I > >>> can send you any information you might need. > >>> > >>> Thanks, > >>> > >>> Matt > >>> > >>> > >>> > >> --------------------------------------------------------------------- > >> > >>> To unsubscribe, e-mail: > >>> [hidden email] > >>> For additional commands, e-mail: [hidden email] > >>> > >>> > >>> > >>> > >>> > >> --------------------------------------------------------------------- > >> > >>> To unsubscribe, e-mail: > >>> [hidden email] > >>> For additional commands, e-mail: [hidden email] > >>> > >>> > >>> > >>> > >> --------------------------------------------------------------------- > >> > >> To unsubscribe, e-mail: > >> [hidden email] > >> For additional commands, e-mail: [hidden email] > >> > >> > >> > >> > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [hidden email] > > For additional commands, e-mail: [hidden email] > > > > > > > -- > cyber:con gmbh > Mika Göckel > > Rathausallee 10 > 53757 Sankt Augustin > > tel (+49)2241 / 9350 0 > fax (+49)2241 / 9350 99 > mob (+49) 172 / 279 2771 > skype mika.goeckel > email [hidden email] > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [hidden email] > For additional commands, e-mail: [hidden email] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [hidden email] For additional commands, e-mail: [hidden email] |
||||||||||||||||
|
Mika Göckel
|
Some javascript/style in this post has been disabled (why?)
Oh, I see. I've set up a JMeter scenario firing against JSF (the others
not installed) with 10 threads, start,login,4x(userlist,mainmenu)
firing at full speed everything on the same machine with these results:![]() which is very impressive. Unfortunately it's too late over here to do a full-flavour install and setup a test. If I've got time tomorrow, I'll give it a try. M. Matt Raible schrieb: I have a scenario setup with WAPT that I can send. One thing to note is that these OOM errors only show up when you have all 5 AppFuse flavors installed. Or at least the ones I have on demo.appfuse.org - which includes Spring MVC with iBATIS. Matt On 4/17/06, Mika Göckel [hidden email] wrote: -- cyber:con gmbh Mika Göckel Rathausallee 10 53757 Sankt Augustin tel (+49)2241 / 9350 0 fax (+49)2241 / 9350 99 mob (+49) 172 / 279 2771 skype mika.goeckel email [hidden email] |
||||||||||||||||
|
Matt Raible-3
|
Some javascript/style in this post has been disabled (why?)
Here's what I sent to Sanjiv this morning for trying stuff out:I've uploaded all the AppFuse webapps from 1.9.1 to http://static.appfuse.org/webapps.zip. These are just the appfuse applications, which you should be able to reproduce the problem with. Note that they have a JNDI DataSource, so you'll need to create an AppFuse DB named appfusedemo with the specified passwords - or change the META-INF/context.xml for each one. When I originally downloaded everything, I included struts-resume and the wiki. I was able to reproduce OOM without these, so I didn't include them. If you'd like to download the whole ball of wax, I can send you the URL and setup instructions. You should be able to reproduce the problem just by clicking around the applications - particularly JSF and Tapestry. If not, I can send you a WAPT test that'll do the trick. Matt On 4/17/06, Mika Göckel <[hidden email]> wrote:
|
||||||||||||||||
|
Sanjiv Jivan
|
In reply to this post
by Matt Raible-3
hmm, cuz I just tried my testing using one AppFuse app deployed (appfuse-jsf). I'll try again with all 5 deployed.
Can you try replicating the OOM with only the appfuse-jsf app deployed?
On 4/17/06, Matt Raible <[hidden email]> wrote:
I have a scenario setup with WAPT that I can send. One thing to note |
||||||||||||||||
|
Matt Raible-3
|
On 4/17/06, Sanjiv Jivan <[hidden email]> wrote:
> > hmm, cuz I just tried my testing using one AppFuse app deployed > (appfuse-jsf). I'll try again with all 5 deployed. > > Can you try replicating the OOM with only the appfuse-jsf app deployed? No, it seems to be the combo. It doesn't go down though, just keeps climbing. I suspect there might be a sweetspot (768M or something), but I doubt it. I suspect a memory leak in one of the combos. Matt > > > > On 4/17/06, Matt Raible <[hidden email]> wrote: > > I have a scenario setup with WAPT that I can send. One thing to note > > is that these OOM errors only show up when you have all 5 AppFuse > > flavors installed. Or at least the ones I have on demo.appfuse.org - > > which includes Spring MVC with iBATIS. > > > > Matt > > > > On 4/17/06, Mika Göckel < [hidden email]> wrote: > > > What about setting up a load test scenario with canoo (if this is > > > possible) or JMeter. > > > Manually clicking around didn't show up OOMs on my system either. > > > > > > Its appfuse latest CVS with jsf (tried struts as well), tomcat 5.5.9, > > > mysql 4.1.15 on XP. > > > > > > Matt Raible schrieb: > > > > I just used a normal database created by AppFuse. The Struts Resume > > > > and wiki datasets are quite a bit larger, but I took them out of the > > > > mix. I'll try to come up with a more definitive way to reproduce in > > > > the next day or two. > > > > > > > > Matt > > > > > > > > On 4/17/06, Sanjiv Jivan <[hidden email]> wrote: > > > > > > > >> How large is your dataset? I haven't altered the default tomcat Xmx > and > > > >> still didn't get an OOM error. Its going to be difficult for me to > > > >> troubleshoot without being able to reproduce the issue. Not sure if > it will > > > >> help, but maybe I can also try analysing your JProfiler snapshot at > a point > > > >> when you're see this issue. > > > >> > > > >> > > > >> On 4/17/06, Matt Raible <[hidden email]> wrote: > > > >> > > > >> On 4/17/06, Sanjiv Jivan < [hidden email]> wrote: > > > >> > > > >>> Matt, > > > >>> I'm unable to reproduce this locally. I'm on XP, Tomcat 5.5.16, > MySQL 4.1. > > > >>> Did you have a lot of data in your database? I've been clicking on > links/ > > > >>> update/ sort etc for 10 - 15 minutes but the app does not raise an > OOM > > > >>> > > > >> error > > > >> > > > >>> and the task manager memory footprint also reduces once I stop > clicking > > > >>> > > > >> and > > > >> > > > >>> settles back to the low value after GC is done. Maybe someone else > could > > > >>> > > > >> try > > > >> > > > >>> reproducing this. btw what JVM heap size are you running with? And > at what > > > >>> memory size are you running out of memory. Do you have a stack > trace? > > > >>> > > > >> I have my JAVA_OPTS set to -Xms256M -Xmx384M. I run out of memory > > > >> around 550MB +. > > > >> > > > >> I don't have a stack trace, but I can get one if you'd like. I'm > > > >> using JProfiler when I get the error. > > > >> > > > >> > > > >>> I did notice another thing though while manually stress testing it. > > > >>> > > > >> Clicking > > > >> > > > >>> on the the save button of a user reached from > > > >>> "View Users" in rapid succession yields the following exception. I > > > >>> > > > >> haven't > > > >> > > > >>> investigated this yet but this probably occurs when multiple threads > are > > > >>> trying to update the record concurrently. Not sure if this exception > is by > > > >>> design for Hibernate optimistic locking. > > > >>> > > > >> This is b/c we're using versioning on the User object. I left it in > > > >> their since it seems like a useful feature. In other words, it's > > > >> expected behavior. > > > >> > > > >> Matt > > > >> > > > >> > > > >>> [appfuse-jsf] ERROR [http-8080-Processor23] > > > >>> > AbstractFlushingEventListener.performExecutions(300) | > > > >>> Could not synchronize > > > >>> database state with session > > > >>> org.hibernate.StaleObjectStateException: Row was > updated > > > >>> > > > >> or > > > >> > > > >>> deleted by another transaction (or unsaved-value mapping was > > > >>> incorrect): [org.appfuse.model.User#2] > > > >>> at > > > >>> > > > >>> > > > >> > org.hibernate.persister.entity.AbstractEntityPersister.check(AbstractEntityPersister.java > :1635) > > > >> > > > >>> at > > > >>> > > > >>> > > > >> > org.hibernate.persister.entity.AbstractEntityPersister.update > > > >> > > > >>> (AbstractEntityPersister.java :2208) > > > >>> at > > > >>> > > > >>> > > > >> > org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2118) > > > >> > > > >>> at > > > >>> > > > >>> > > > >> > org.hibernate.persister.entity.AbstractEntityPersister.update > > > >> > > > >>> (AbstractEntityPersister.java:2374) > > > >>> at > > > >>> > > > >>> > > > >> > org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:91) > > > >> > > > >>> at > > > >>> > org.hibernate.engine.ActionQueue.execute(ActionQueue.java > > > >>> > > > >> :248) > > > >> > > > >>> at > > > >>> > > > >> org.hibernate.engine.ActionQueue.executeActions > > > >> > > > >>> (ActionQueue.java:232) > > > >>> at > > > >>> > > > >>> > > > >> > org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140) > > > >> > > > >>> On 4/17/06, Matt Raible < [hidden email]> wrote: > > > >>> > > > >>> All, > > > >>> > > > >>> Ever since I deployed 1.9.1 to appfuse.org, Tomcat has been spewing > > > >>> OutOfMemory (OOM) errors. It only takes about a minute or two after > a > > > >>> restart to get them, which really sucks. I've been doing some > > > >>> profiling this evening and haven't been able to find anything that > > > >>> definitive. However, it seems that Tapestry and JSF are the worst > > > >>> offenders. I can add the other application flavors, and the memory > > > >>> usage gradually goes up as I click through the apps. If I stop > > > >>> clicking, thing stabilize. With JSF, it shoots up and and keeps > > > >>> climbing - almost up 150K. The heap size and stats in JProfiler > look > > > >>> good, but Windows Task Manager shows JSF supplying the biggest hit. > > > >>> > > > >>> Does anyone have the time to profile any of the AppFuse flavors? I > > > >>> can send you any information you might need. > > > >>> > > > >>> Thanks, > > > >>> > > > >>> Matt > > > >>> > > > >>> > > > >>> > > > >> > --------------------------------------------------------------------- > > > >> > > > >>> To unsubscribe, e-mail: > > > >>> [hidden email] > > > >>> For additional commands, e-mail: [hidden email] > > > >>> > > > >>> > > > >>> > > > >>> > > > >>> > > > >> > --------------------------------------------------------------------- > > > >> > > > >>> To unsubscribe, e-mail: > > > >>> [hidden email] > > > >>> For additional commands, e-mail: [hidden email] > > > >>> > > > >>> > > > >>> > > > >>> > > > >> > --------------------------------------------------------------------- > > > >> > > > >> To unsubscribe, e-mail: > > > >> [hidden email] > > > >> For additional commands, e-mail: [hidden email] > > > >> > > > >> > > > >> > > > >> > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: > [hidden email] > > > > For additional commands, e-mail: [hidden email] > > > > > > > > > > > > > > > > > -- > > > cyber:con gmbh > > > Mika Göckel > > > > > > Rathausallee 10 > > > 53757 Sankt Augustin > > > > > > tel (+49)2241 / 9350 0 > > > fax (+49)2241 / 9350 99 > > > mob (+49) 172 / 279 2771 > > > skype mika.goeckel > > > email [hidden email] > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: > [hidden email] > > > For additional commands, e-mail: [hidden email] > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: > [hidden email] > > For additional commands, e-mail: [hidden email] > > > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [hidden email] For additional commands, e-mail: [hidden email] |
||||||||||||||||
|
Sanjiv Jivan
|
I spent around around 30 mins today having all apps deployed but wasn't able to replicate the issue. Can you sent the stack trace? Is this deployed on a windows box?
On 4/18/06, Matt Raible <[hidden email]> wrote:
On 4/17/06, Sanjiv Jivan <[hidden email]> wrote: |
||||||||||||||||
|
Matt Raible-3
|
Yes, it's a Windows box: AMD dual core 3800 (2 GHz) with 3 GB of RAM.
I'll reproduce and send the files tonight. Matt On 4/18/06, Sanjiv Jivan <[hidden email]> wrote: > I spent around around 30 mins today having all apps deployed but wasn't able > to replicate the issue. Can you sent the stack trace? Is this deployed on a > windows box? > > > On 4/18/06, Matt Raible <[hidden email]> wrote: > > > On 4/17/06, Sanjiv Jivan <[hidden email]> wrote: > > > > hmm, cuz I just tried my testing using one AppFuse app deployed > > (appfuse-jsf). I'll try again with all 5 deployed. > > > > Can you try replicating the OOM with only the appfuse-jsf app deployed? > > No, it seems to be the combo. It doesn't go down though, just keeps > climbing. I suspect there might be a sweetspot (768M or something), > but I doubt it. I suspect a memory leak in one of the combos. > > Matt > > > > > > > > > On 4/17/06, Matt Raible <[hidden email]> wrote: > > > I have a scenario setup with WAPT that I can send. One thing to note > > > is that these OOM errors only show up when you have all 5 AppFuse > > > flavors installed. Or at least the ones I have on demo.appfuse.org - > > > which includes Spring MVC with iBATIS. > > > > > > Matt > > > > > > On 4/17/06, Mika Göckel < [hidden email]> wrote: > > > > What about setting up a load test scenario with canoo (if this is > > > > possible) or JMeter. > > > > Manually clicking around didn't show up OOMs on my system either. > > > > > > > > Its appfuse latest CVS with jsf (tried struts as well), tomcat 5.5.9, > > > > mysql 4.1.15 on XP. > > > > > > > > Matt Raible schrieb: > > > > > I just used a normal database created by AppFuse. The Struts Resume > > > > > and wiki datasets are quite a bit larger, but I took them out of the > > > > > mix. I'll try to come up with a more definitive way to reproduce in > > > > > the next day or two. > > > > > > > > > > Matt > > > > > > > > > > On 4/17/06, Sanjiv Jivan < [hidden email]> wrote: > > > > > > > > > >> How large is your dataset? I haven't altered the default tomcat Xmx > > and > > > > >> still didn't get an OOM error. Its going to be difficult for me to > > > > >> troubleshoot without being able to reproduce the issue. Not sure if > > it will > > > > >> help, but maybe I can also try analysing your JProfiler snapshot > at > > a point > > > > >> when you're see this issue. > > > > >> > > > > >> > > > > >> On 4/17/06, Matt Raible <[hidden email] > wrote: > > > > >> > > > > >> On 4/17/06, Sanjiv Jivan < [hidden email]> wrote: > > > > >> > > > > >>> Matt, > > > > >>> I'm unable to reproduce this locally. I'm on XP, Tomcat 5.5.16, > > MySQL 4.1. > > > > >>> Did you have a lot of data in your database? I've been clicking on > > links/ > > > > >>> update/ sort etc for 10 - 15 minutes but the app does not raise an > > OOM > > > > >>> > > > > >> error > > > > >> > > > > >>> and the task manager memory footprint also reduces once I stop > > clicking > > > > >>> > > > > >> and > > > > >> > > > > >>> settles back to the low value after GC is done. Maybe someone else > > could > > > > >>> > > > > >> try > > > > >> > > > > >>> reproducing this. btw what JVM heap size are you running with? And > > at what > > > > >>> memory size are you running out of memory. Do you have a stack > > trace? > > > > >>> > > > > >> I have my JAVA_OPTS set to -Xms256M -Xmx384M. I run out of memory > > > > >> around 550MB +. > > > > >> > > > > >> I don't have a stack trace, but I can get one if you'd like. I'm > > > > >> using JProfiler when I get the error. > > > > >> > > > > >> > > > > >>> I did notice another thing though while manually stress testing > it. > > > > >>> > > > > >> Clicking > > > > >> > > > > >>> on the the save button of a user reached from > > > > >>> "View Users" in rapid succession yields the following exception. > I > > > > >>> > > > > >> haven't > > > > >> > > > > >>> investigated this yet but this probably occurs when multiple > threads > > are > > > > >>> trying to update the record concurrently. Not sure if this > exception > > is by > > > > >>> design for Hibernate optimistic locking. > > > > >>> > > > > >> This is b/c we're using versioning on the User object. I left it > in > > > > >> their since it seems like a useful feature. In other words, it's > > > > >> expected behavior. > > > > >> > > > > >> Matt > > > > >> > > > > >> > > > > >>> [appfuse-jsf] ERROR [http-8080-Processor23] > > > > >>> > > AbstractFlushingEventListener.performExecutions(300) | > > > > >>> Could not synchronize > > > > >>> database state with session > > > > >>> org.hibernate.StaleObjectStateException: Row was > > updated > > > > >>> > > > > >> or > > > > >> > > > > >>> deleted by another transaction (or unsaved-value mapping was > > > > >>> incorrect): [org.appfuse.model.User#2] > > > > >>> at > > > > >>> > > > > >>> > > > > >> > > > org.hibernate.persister.entity.AbstractEntityPersister.check > (AbstractEntityPersister.java > > :1635) > > > > >> > > > > >>> at > > > > >>> > > > > >>> > > > > >> > > > org.hibernate.persister.entity.AbstractEntityPersister.update > > > > >> > > > > >>> (AbstractEntityPersister.java :2208) > > > > >>> at > > > > >>> > > > > >>> > > > > >> > > > org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2118) > > > > >> > > > > >>> at > > > > >>> > > > > >>> > > > > >> > > > org.hibernate.persister.entity.AbstractEntityPersister.update > > > > >> > > > > >>> (AbstractEntityPersister.java:2374) > > > > >>> at > > > > >>> > > > > >>> > > > > >> > > > org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:91) > > > > >> > > > > >>> at > > > > >>> > > org.hibernate.engine.ActionQueue.execute(ActionQueue.java > > > > >>> > > > > >> :248) > > > > >> > > > > >>> at > > > > >>> > > > > >> org.hibernate.engine.ActionQueue.executeActions > > > > >> > > > > >>> (ActionQueue.java:232) > > > > >>> at > > > > >>> > > > > >>> > > > > >> > > > org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140) > > > > >> > > > > >>> On 4/17/06, Matt Raible < [hidden email]> wrote: > > > > >>> > > > > >>> All, > > > > >>> > > > > >>> Ever since I deployed 1.9.1 to appfuse.org, Tomcat has been > spewing > > > > >>> OutOfMemory (OOM) errors. It only takes about a minute or two > after > > a > > > > >>> restart to get them, which really sucks. I've been doing some > > > > >>> profiling this evening and haven't been able to find anything that > > > > >>> definitive. However, it seems that Tapestry and JSF are the worst > > > > >>> offenders. I can add the other application flavors, and the > memory > > > > >>> usage gradually goes up as I click through the apps. If I stop > > > > >>> clicking, thing stabilize. With JSF, it shoots up and and keeps > > > > >>> climbing - almost up 150K. The heap size and stats in JProfiler > > look > > > > >>> good, but Windows Task Manager shows JSF supplying the biggest > hit. > > > > >>> > > > > >>> Does anyone have the time to profile any of the AppFuse flavors? > I > > > > >>> can send you any information you might need. > > > > >>> > > > > >>> Thanks, > > > > >>> > > > > >>> Matt > > > > >>> > > > > >>> > > > > >>> > > > > >> > > > --------------------------------------------------------------------- > > > > >> > > > > >>> To unsubscribe, e-mail: > > > > >>> [hidden email] > > > > >>> For additional commands, e-mail: [hidden email] > > > > >>> > > > > >>> > > > > >>> > > > > >>> > > > > >>> > > > > >> > > > --------------------------------------------------------------------- > > > > >> > > > > >>> To unsubscribe, e-mail: > > > > >>> [hidden email] > > > > >>> For additional commands, e-mail: [hidden email] > > > > >>> > > > > >>> > > > > >>> > > > > >>> > > > > >> > > > --------------------------------------------------------------------- > > > > >> > > > > >> To unsubscribe, e-mail: > > > > >> [hidden email] > > > > >> For additional commands, e-mail: [hidden email] > > > > >> > > > > >> > > > > >> > > > > >> > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > To unsubscribe, e-mail: > > [hidden email] > > > > > For additional commands, e-mail: [hidden email] > > > > > > > > > > > > > > > > > > > > > > -- > > > > cyber:con gmbh > > > > Mika Göckel > > > > > > > > Rathausallee 10 > > > > 53757 Sankt Augustin > > > > > > > > tel (+49)2241 / 9350 0 > > > > fax (+49)2241 / 9350 99 > > > > mob (+49) 172 / 279 2771 > > > > skype mika.goeckel > > > > email [hidden email] > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: > > [hidden email] > > > > For additional commands, e-mail: [hidden email] > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: > > [hidden email] > > > For additional commands, e-mail: [hidden email] > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: > [hidden email] > For additional commands, e-mail: [hidden email] > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [hidden email] For additional commands, e-mail: [hidden email] |
||||||||||||||||
|
Sanjiv Jivan
|
Do you have McAfee installed? A recent patch was really buggy and didn't release file handles correctly resulting in a leak of non pooled memory. This could case the error to show up as a OOM.
On 4/18/06, Matt Raible <[hidden email]> wrote:
Yes, it's a Windows box: AMD dual core 3800 (2 GHz) with 3 GB of RAM. |
||||||||||||||||
|
Matt Raible-3
|
Nope, but I do have Norton Antivirus installed. Regardless of what I
have locally on my Windows box, the problem still happens on the Linux box where it runs. ;-) Matt On 4/18/06, Sanjiv Jivan <[hidden email]> wrote: > Do you have McAfee installed? A recent patch was really buggy and didn't > release file handles correctly resulting in a leak of non pooled memory. > This could case the error to show up as a OOM. > > > On 4/18/06, Matt Raible <[hidden email]> wrote: > > > Yes, it's a Windows box: AMD dual core 3800 (2 GHz) with 3 GB of RAM. > I'll reproduce and send the files tonight. > > Matt > > On 4/18/06, Sanjiv Jivan <[hidden email]> wrote: > > I spent around around 30 mins today having all apps deployed but wasn't > able > > to replicate the issue. Can you sent the stack trace? Is this deployed on > a > > windows box? > > > > > > On 4/18/06, Matt Raible <[hidden email]> wrote: > > > > > On 4/17/06, Sanjiv Jivan < [hidden email]> wrote: > > > > > > hmm, cuz I just tried my testing using one AppFuse app deployed > > > (appfuse-jsf). I'll try again with all 5 deployed. > > > > > > Can you try replicating the OOM with only the appfuse-jsf app deployed? > > > > No, it seems to be the combo. It doesn't go down though, just keeps > > climbing. I suspect there might be a sweetspot (768M or something), > > but I doubt it. I suspect a memory leak in one of the combos. > > > > Matt > > > > > > > > > > > > > > On 4/17/06, Matt Raible <[hidden email]> wrote: > > > > I have a scenario setup with WAPT that I can send. One thing to note > > > > is that these OOM errors only show up when you have all 5 AppFuse > > > > flavors installed. Or at least the ones I have on demo.appfuse.org - > > > > which includes Spring MVC with iBATIS. > > > > > > > > Matt > > > > > > > > On 4/17/06, Mika Göckel < [hidden email]> wrote: > > > > > What about setting up a load test scenario with canoo (if this is > > > > > possible) or JMeter. > > > > > Manually clicking around didn't show up OOMs on my system either. > > > > > > > > > > Its appfuse latest CVS with jsf (tried struts as well), tomcat > 5.5.9, > > > > > mysql 4.1.15 on XP. > > > > > > > > > > Matt Raible schrieb: > > > > > > I just used a normal database created by AppFuse. The Struts > Resume > > > > > > and wiki datasets are quite a bit larger, but I took them out of > the > > > > > > mix. I'll try to come up with a more definitive way to reproduce > in > > > > > > the next day or two. > > > > > > > > > > > > Matt > > > > > > > > > > > > On 4/17/06, Sanjiv Jivan < [hidden email]> wrote: > > > > > > > > > > > >> How large is your dataset? I haven't altered the default tomcat > Xmx > > > and > > > > > >> still didn't get an OOM error. Its going to be difficult for me > to > > > > > >> troubleshoot without being able to reproduce the issue. Not sure > if > > > it will > > > > > >> help, but maybe I can also try analysing your JProfiler snapshot > > at > > > a point > > > > > >> when you're see this issue. > > > > > >> > > > > > >> > > > > > >> On 4/17/06, Matt Raible <[hidden email] > wrote: > > > > > >> > > > > > >> On 4/17/06, Sanjiv Jivan < [hidden email]> wrote: > > > > > >> > > > > > >>> Matt, > > > > > >>> I'm unable to reproduce this locally. I'm on XP, Tomcat 5.5.16, > > > MySQL 4.1. > > > > > >>> Did you have a lot of data in your database? I've been clicking > on > > > links/ > > > > > >>> update/ sort etc for 10 - 15 minutes but the app does not raise > an > > > OOM > > > > > >>> > > > > > >> error > > > > > >> > > > > > >>> and the task manager memory footprint also reduces once I stop > > > clicking > > > > > >>> > > > > > >> and > > > > > >> > > > > > >>> settles back to the low value after GC is done. Maybe someone > else > > > could > > > > > >>> > > > > > >> try > > > > > >> > > > > > >>> reproducing this. btw what JVM heap size are you running with? > And > > > at what > > > > > >>> memory size are you running out of memory. Do you have a stack > > > trace? > > > > > >>> > > > > > >> I have my JAVA_OPTS set to -Xms256M -Xmx384M. I run out of > memory > > > > > >> around 550MB +. > > > > > >> > > > > > >> I don't have a stack trace, but I can get one if you'd like. I'm > > > > > >> using JProfiler when I get the error. > > > > > >> > > > > > >> > > > > > >>> I did notice another thing though while manually stress testing > > it. > > > > > >>> > > > > > >> Clicking > > > > > >> > > > > > >>> on the the save button of a user reached from > > > > > >>> "View Users" in rapid succession yields the following > exception. > > I > > > > > >>> > > > > > >> haven't > > > > > >> > > > > > >>> investigated this yet but this probably occurs when multiple > > threads > > > are > > > > > >>> trying to update the record concurrently. Not sure if this > > exception > > > is by > > > > > >>> design for Hibernate optimistic locking. > > > > > >>> > > > > > >> This is b/c we're using versioning on the User object. I left > it > > in > > > > > >> their since it seems like a useful feature. In other words, it's > > > > > >> expected behavior. > > > > > >> > > > > > >> Matt > > > > > >> > > > > > >> > > > > > >>> [appfuse-jsf] ERROR [http-8080-Processor23] > > > > > >>> > > > AbstractFlushingEventListener.performExecutions(300) | > > > > > >>> Could not synchronize > > > > > >>> database state with session > > > > > >>> org.hibernate.StaleObjectStateException: Row > was > > > updated > > > > > >>> > > > > > >> or > > > > > >> > > > > > >>> deleted by another transaction (or unsaved-value mapping was > > > > > >>> incorrect): [org.appfuse.model.User#2] > > > > > >>> at > > > > > >>> > > > > > >>> > > > > > >> > > > > > > org.hibernate.persister.entity.AbstractEntityPersister.check > > (AbstractEntityPersister.java > > > :1635) > > > > > >> > > > > > >>> at > > > > > >>> > > > > > >>> > > > > > >> > > > > > > org.hibernate.persister.entity.AbstractEntityPersister.update > > > > > >> > > > > > >>> ( AbstractEntityPersister.java :2208) > > > > > >>> at > > > > > >>> > > > > > >>> > > > > > >> > > > > > > org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert > (AbstractEntityPersister.java:2118) > > > > > >> > > > > > >>> at > > > > > >>> > > > > > >>> > > > > > >> > > > > > > org.hibernate.persister.entity.AbstractEntityPersister.update > > > > > >> > > > > > >>> (AbstractEntityPersister.java:2374) > > > > > >>> at > > > > > >>> > > > > > >>> > > > > > >> > > > > > > org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:91) > > > > > >> > > > > > >>> at > > > > > >>> > > > > org.hibernate.engine.ActionQueue.execute(ActionQueue.java > > > > > >>> > > > > > >> :248) > > > > > >> > > > > > >>> at > > > > > >>> > > > > > >> org.hibernate.engine.ActionQueue.executeActions > > > > > >> > > > > > >>> (ActionQueue.java:232) > > > > > >>> at > > > > > >>> > > > > > >>> > > > > > >> > > > > > > org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140) > > > > > >> > > > > > >>> On 4/17/06, Matt Raible < [hidden email] > wrote: > > > > > >>> > > > > > >>> All, > > > > > >>> > > > > > >>> Ever since I deployed 1.9.1 to appfuse.org, Tomcat has been > > spewing > > > > > >>> OutOfMemory (OOM) errors. It only takes about a minute or two > > after > > > a > > > > > >>> restart to get them, which really sucks. I've been doing some > > > > > >>> profiling this evening and haven't been able to find anything > that > > > > > >>> definitive. However, it seems that Tapestry and JSF are the > worst > > > > > >>> offenders. I can add the other application flavors, and the > > memory > > > > > >>> usage gradually goes up as I click through the apps. If I stop > > > > > >>> clicking, thing stabilize. With JSF, it shoots up and and keeps > > > > > >>> climbing - almost up 150K. The heap size and stats in JProfiler > > > look > > > > > >>> good, but Windows Task Manager shows JSF supplying the biggest > > hit. > > > > > >>> > > > > > >>> Does anyone have the time to profile any of the AppFuse flavors? > > I > > > > > >>> can send you any information you might need. > > > > > >>> > > > > > >>> Thanks, > > > > > >>> > > > > > >>> Matt > > > > > >>> > > > > > >>> > > > > > >>> > > > > > >> > > > > > > --------------------------------------------------------------------- > > > > > >> > > > > > >>> To unsubscribe, e-mail: > > > > > >>> [hidden email] > > > > > >>> For additional commands, e-mail: [hidden email] > > > > > >>> > > > > > >>> > > > > > >>> > > > > > >>> > > > > > >>> > > > > > >> > > > > > > --------------------------------------------------------------------- > > > > > >> > > > > > >>> To unsubscribe, e-mail: > > > > > >>> [hidden email] > > > > > >>> For additional commands, e-mail: [hidden email] > > > > > >>> > > > > > >>> > > > > > >>> > > > > > >>> > > > > > >> > > > > > > --------------------------------------------------------------------- > > > > > >> > > > > > >> To unsubscribe, e-mail: > > > > > >> [hidden email] > > > > > >> For additional commands, e-mail: [hidden email] > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > To unsubscribe, e-mail: > > > [hidden email] > > > > > > For additional commands, e-mail: [hidden email] > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > cyber:con gmbh > > > > > Mika Göckel > > > > > > > > > > Rathausallee 10 > > > > > 53757 Sankt Augustin > > > > > > > > > > tel (+49)2241 / 9350 0 > > > > > fax (+49)2241 / 9350 99 > > > > > mob (+49) 172 / 279 2771 > > > > > skype mika.goeckel > > > > > email [hidden email] > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > To unsubscribe, e-mail: > > > [hidden email] > > > > > For additional commands, e-mail: [hidden email] > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: > > > [hidden email] > > > > For additional commands, e-mail: [hidden email] > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: > > [hidden email] > > For additional commands, e-mail: [hidden email] > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: > [hidden email] > For additional commands, e-mail: [hidden email] > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [hidden email] For additional commands, e-mail: [hidden email] |
||||||||||||||||
|
Matt Raible-3
|
In reply to this post
by Matt Raible-3
Here's what I did to reproduce the problem.
Installed all webapps from appfuse.org in $CATALINA_HOME/webapps. This includes all 5 AppFuse flavors, the wiki and Struts Resume. I started Tomcat (5.5.16 on JDK 5) with JProfiler and all bells and whistles enabled. I completed the following sequence, starting with appfuse, then appfuse-spring, then appfuse-webwork. 1. Login 2. Click on Edit Profile 3. Click Save (there's an error here in Spring+iBATIS) 4. Click on View Users 5. Logout When logging into the WebWork version, I ran out of memory and received the following stack trace: [appfuse-webwork] DEBUG [http-8080-3] UserAction.edit(92) | checking for remember me login... [appfuse-webwork] ERROR [http-8080-3] [jsp].invoke(704) | Servlet.service() for servlet jsp threw exception org.apache.jasper.JasperException: File "/webwork" not found at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:50) at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407) at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:114) When I tried to access appfuse-tapestry, I received: Apr 18, 2006 9:43:42 PM org.apache.catalina.connector.CoyoteAdapter service SEVERE: An exception or error occurred in the container during the request processing java.lang.OutOfMemoryError: PermGen space JAVA_OPTS: -Xms256M -Xmx384M CATALINA_OPTS: -Xms256M -Xmx256M For kicks, I tried starting Tomcat outside of JProfiler and went through the same sequence of steps outlined above. I actually made it through each application ... almost. I clicked logout on the last one (appfuse-tapestry) and OOM: [appfuse-tapestry] DEBUG [http-8080-Processor25] UserSecurityAdvice.afterReturni ng(118) | Removing 'mraible' from userCache [appfuse-tapestry] ERROR [http-8080-Processor25] [jsp].invoke(253) | Servlet.ser vice() for servlet jsp threw exception java.lang.OutOfMemoryError: PermGen space Matt On 4/18/06, Matt Raible <[hidden email]> wrote: > Yes, it's a Windows box: AMD dual core 3800 (2 GHz) with 3 GB of RAM. > I'll reproduce and send the files tonight. > > Matt > > On 4/18/06, Sanjiv Jivan <[hidden email]> wrote: > > I spent around around 30 mins today having all apps deployed but wasn't able > > to replicate the issue. Can you sent the stack trace? Is this deployed on a > > windows box? > > > > > > On 4/18/06, Matt Raible <[hidden email]> wrote: > > > > > On 4/17/06, Sanjiv Jivan <[hidden email]> wrote: > > > > > > hmm, cuz I just tried my testing using one AppFuse app deployed > > > (appfuse-jsf). I'll try again with all 5 deployed. > > > > > > Can you try replicating the OOM with only the appfuse-jsf app deployed? > > > > No, it seems to be the combo. It doesn't go down though, just keeps > > climbing. I suspect there might be a sweetspot (768M or something), > > but I doubt it. I suspect a memory leak in one of the combos. > > > > Matt > > > > > > > > > > > > > > On 4/17/06, Matt Raible <[hidden email]> wrote: > > > > I have a scenario setup with WAPT that I can send. One thing to note > > > > is that these OOM errors only show up when you have all 5 AppFuse > > > > flavors installed. Or at least the ones I have on demo.appfuse.org - > > > > which includes Spring MVC with iBATIS. > > > > > > > > Matt > > > > > > > > On 4/17/06, Mika Göckel < [hidden email]> wrote: > > > > > What about setting up a load test scenario with canoo (if this is > > > > > possible) or JMeter. > > > > > Manually clicking around didn't show up OOMs on my system either. > > > > > > > > > > Its appfuse latest CVS with jsf (tried struts as well), tomcat 5.5.9, > > > > > mysql 4.1.15 on XP. > > > > > > > > > > Matt Raible schrieb: > > > > > > I just used a normal database created by AppFuse. The Struts Resume > > > > > > and wiki datasets are quite a bit larger, but I took them out of the > > > > > > mix. I'll try to come up with a more definitive way to reproduce in > > > > > > the next day or two. > > > > > > > > > > > > Matt > > > > > > > > > > > > On 4/17/06, Sanjiv Jivan < [hidden email]> wrote: > > > > > > > > > > > >> How large is your dataset? I haven't altered the default tomcat Xmx > > > and > > > > > >> still didn't get an OOM error. Its going to be difficult for me to > > > > > >> troubleshoot without being able to reproduce the issue. Not sure if > > > it will > > > > > >> help, but maybe I can also try analysing your JProfiler snapshot > > at > > > a point > > > > > >> when you're see this issue. > > > > > >> > > > > > >> > > > > > >> On 4/17/06, Matt Raible <[hidden email] > wrote: > > > > > >> > > > > > >> On 4/17/06, Sanjiv Jivan < [hidden email]> wrote: > > > > > >> > > > > > >>> Matt, > > > > > >>> I'm unable to reproduce this locally. I'm on XP, Tomcat 5.5.16, > > > MySQL 4.1. > > > > > >>> Did you have a lot of data in your database? I've been clicking on > > > links/ > > > > > >>> update/ sort etc for 10 - 15 minutes but the app does not raise an > > > OOM > > > > > >>> > > > > > >> error > > > > > >> > > > > > >>> and the task manager memory footprint also reduces once I stop > > > clicking > > > > > >>> > > > > > >> and > > > > > >> > > > > > >>> settles back to the low value after GC is done. Maybe someone else > > > could > > > > > >>> > > > > > >> try > > > > > >> > > > > > >>> reproducing this. btw what JVM heap size are you running with? And > > > at what > > > > > >>> memory size are you running out of memory. Do you have a stack > > > trace? > > > > > >>> > > > > > >> I have my JAVA_OPTS set to -Xms256M -Xmx384M. I run out of memory > > > > > >> around 550MB +. > > > > > >> > > > > > >> I don't have a stack trace, but I can get one if you'd like. I'm > > > > > >> using JProfiler when I get the error. > > > > > >> > > > > > >> > > > > > >>> I did notice another thing though while manually stress testing > > it. > > > > > >>> > > > > > >> Clicking > > > > > >> > > > > > >>> on the the save button of a user reached from > > > > > >>> "View Users" in rapid succession yields the following exception. > > I > > > > > >>> > > > > > >> haven't > > > > > >> > > > > > >>> investigated this yet but this probably occurs when multiple > > threads > > > are > > > > > >>> trying to update the record concurrently. Not sure if this > > exception > > > is by > > > > > >>> design for Hibernate optimistic locking. > > > > > >>> > > > > > >> This is b/c we're using versioning on the User object. I left it > > in > > > > > >> their since it seems like a useful feature. In other words, it's > > > > > >> expected behavior. > > > > > >> > > > > > >> Matt > > > > > >> > > > > > >> > > > > > >>> [appfuse-jsf] ERROR [http-8080-Processor23] > > > > > >>> > > > AbstractFlushingEventListener.performExecutions(300) | > > > > > >>> Could not synchronize > > > > > >>> database state with session > > > > > >>> org.hibernate.StaleObjectStateException: Row was > > > updated > > > > > >>> > > > > > >> or > > > > > >> > > > > > >>> deleted by another transaction (or unsaved-value mapping was > > > > > >>> incorrect): [org.appfuse.model.User#2] > > > > > >>> at > > > > > >>> > > > > > >>> > > > > > >> > > > > > org.hibernate.persister.entity.AbstractEntityPersister.check > > (AbstractEntityPersister.java > > > :1635) > > > > > >> > > > > > >>> at > > > > > >>> > > > > > >>> > > > > > >> > > > > > org.hibernate.persister.entity.AbstractEntityPersister.update > > > > > >> > > > > > >>> (AbstractEntityPersister.java :2208) > > > > > >>> at > > > > > >>> > > > > > >>> > > > > > >> > > > > > org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2118) > > > > > >> > > > > > >>> at > > > > > >>> > > > > > >>> > > > > > >> > > > > > org.hibernate.persister.entity.AbstractEntityPersister.update > > > > > >> > > > > > >>> (AbstractEntityPersister.java:2374) > > > > > >>> at > > > > > >>> > > > > > >>> > > > > > >> > > > > > org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:91) > > > > > >> > > > > > >>> at > > > > > >>> > > > org.hibernate.engine.ActionQueue.execute(ActionQueue.java > > > > > >>> > > > > > >> :248) > > > > > >> > > > > > >>> at > > > > > >>> > > > > > >> org.hibernate.engine.ActionQueue.executeActions > > > > > >> > > > > > >>> (ActionQueue.java:232) > > > > > >>> at > > > > > >>> > > > > > >>> > > > > > >> > > > > > org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140) > > > > > >> > > > > > >>> On 4/17/06, Matt Raible < [hidden email]> wrote: > > > > > >>> > > > > > >>> All, > > > > > >>> > > > > > >>> Ever since I deployed 1.9.1 to appfuse.org, Tomcat has been > > spewing > > > > > >>> OutOfMemory (OOM) errors. It only takes about a minute or two > > after > > > a > > > > > >>> restart to get them, which really sucks. I've been doing some > > > > > >>> profiling this evening and haven't been able to find anything that > > > > > >>> definitive. However, it seems that Tapestry and JSF are the worst > > > > > >>> offenders. I can add the other application flavors, and the > > memory > > > > > >>> usage gradually goes up as I click through the apps. If I stop > > > > > >>> clicking, thing stabilize. With JSF, it shoots up and and keeps > > > > > >>> climbing - almost up 150K. The heap size and stats in JProfiler > > > look > > > > > >>> good, but Windows Task Manager shows JSF supplying the biggest > > hit. > > > > > >>> > > > > > >>> Does anyone have the time to profile any of the AppFuse flavors? > > I > > > > > >>> can send you any information you might need. > > > > > >>> > > > > > >>> Thanks, > > > > > >>> > > > > > >>> Matt > > > > > >>> > > > > > >>> > > > > > >>> > > > > > >> > > > > > --------------------------------------------------------------------- > > > > > >> > > > > > >>> To unsubscribe, e-mail: > > > > > >>> [hidden email] > > > > > >>> For additional commands, e-mail: [hidden email] > > > > > >>> > > > > > >>> > > > > > >>> > > > > > >>> > > > > > >>> > > > > > >> > > > > > --------------------------------------------------------------------- > > > > > >> > > > > > >>> To unsubscribe, e-mail: > > > > > >>> [hidden email] > > > > > >>> For additional commands, e-mail: [hidden email] > > > > > >>> > > > > > >>> > > > > > >>> > > > > > >>> > > > > > >> > > > > > --------------------------------------------------------------------- > > > > > >> > > > > > >> To unsubscribe, e-mail: > > > > > >> [hidden email] > > > > > >> For additional commands, e-mail: [hidden email] > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > To unsubscribe, e-mail: > > > [hidden email] > > > > > > For additional commands, e-mail: [hidden email] > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > cyber:con gmbh > > > > > Mika Göckel > > > > > > > > > > Rathausallee 10 > > > > > 53757 Sankt Augustin > > > > > > > > > > tel (+49)2241 / 9350 0 > > > > > fax (+49)2241 / 9350 99 > > > > > mob (+49) 172 / 279 2771 > > > > > skype mika.goeckel > > > > > email [hidden email] > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > To unsubscribe, e-mail: > > > [hidden email] > > > > > For additional commands, e-mail: [hidden email] > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: > > > [hidden email] > > > > For additional commands, e-mail: [hidden email] > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: > > [hidden email] > > For additional commands, e-mail: [hidden email] > > > > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [hidden email] For additional commands, e-mail: [hidden email] |
||||||||||||||||
|
Sanjiv Jivan
|
ah, did you try increasing the max perm size (-XX:MaxPermSize=256m) . Max Perm size is running out of memory and not necessarily the main memory. Class metadata stuff is placed in the perm memory (google for more deails) and since we're using Spring , Hibernate and Tapestry which all use a lot of reflection, proxying etc, its not surprising that max perm size is running out of memory..
On 4/18/06, Matt Raible <[hidden email]> wrote:
Here's what I did to reproduce the problem. |
||||||||||||||||
|
Sanjiv Jivan
|
Some javascript/style in this post has been disabled (why?)
Also if memory serves me right, there is a view in JProfiler which specifically shows the max perm memory heap.On 4/19/06, Sanjiv Jivan <[hidden email]> wrote:
|
||||||||||||||||
|
Matt Raible-3
|
In reply to this post
by Sanjiv Jivan
Dude - nice work! I added -XX:MaxPermSize=256m to my JAVA_OPTS and
I'm now able to hammer all 5 apps with WAPT and have no memory issues. I've been getting 8 pages per second for 15 minutes with a blip on the error graph every 5 minutes or so. Thanks Sanjiv! Matt On 4/18/06, Sanjiv Jivan <[hidden email]> wrote: > ah, did you try increasing the max perm size (-XX:MaxPermSize=256m) . Max > Perm size is running out of memory and not necessarily the main memory. > Class metadata stuff is placed in the perm memory (google for more deails) > and since we're using Spring , Hibernate and Tapestry which all use a lot of > reflection, proxying etc, its not surprising that max perm size is running > out of memory.. > > > > On 4/18/06, Matt Raible <[hidden email]> wrote: > > Here's what I did to reproduce the problem. > > > > Installed all webapps from appfuse.org in $CATALINA_HOME/webapps. > > This includes all 5 AppFuse flavors, the wiki and Struts Resume. I > > started Tomcat (5.5.16 on JDK 5) with JProfiler and all bells and > > whistles enabled. > > > > I completed the following sequence, starting with appfuse, then > > appfuse-spring, then appfuse-webwork. > > > > 1. Login > > 2. Click on Edit Profile > > 3. Click Save (there's an error here in Spring+iBATIS) > > 4. Click on View Users > > 5. Logout > > > > When logging into the WebWork version, I ran out of memory and > > received the following stack trace: > > > > > > [appfuse-webwork] DEBUG [http-8080-3] UserAction.edit(92) | checking > > for remember me login... > > [appfuse-webwork] ERROR [http-8080-3] [jsp].invoke(704) | > > Servlet.service () for servlet jsp threw exception > > org.apache.jasper.JasperException: File "/webwork" not > found > > at > org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:50) > > at org.apache.jasper.compiler.ErrorDispatcher.dispatch > (ErrorDispatcher.java:407) > > at > org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:114) > > > > When I tried to access appfuse-tapestry, I received: > > > > Apr 18, 2006 9:43:42 PM > org.apache.catalina.connector.CoyoteAdapter service > > SEVERE: An exception or error occurred in the container during the > > request processing > > java.lang.OutOfMemoryError: PermGen space > > > > JAVA_OPTS: -Xms256M -Xmx384M > > CATALINA_OPTS: -Xms256M -Xmx256M > > > > For kicks, I tried starting Tomcat outside of JProfiler and went > > through the same sequence of steps outlined above. I actually made it > > through each application ... almost. I clicked logout on the last one > > (appfuse-tapestry) and OOM: > > > > [appfuse-tapestry] DEBUG [http-8080-Processor25] > UserSecurityAdvice.afterReturni > > ng(118) | Removing 'mraible' from userCache > > [appfuse-tapestry] ERROR [http-8080-Processor25] [jsp].invoke(253) | > Servlet.ser > > vice() for servlet jsp threw exception > > java.lang.OutOfMemoryError: PermGen space > > > > Matt > > > > On 4/18/06, Matt Raible <[hidden email]> wrote: > > > Yes, it's a Windows box: AMD dual core 3800 (2 GHz) with 3 GB of RAM. > > > I'll reproduce and send the files tonight. > > > > > > Matt > > > > > > On 4/18/06, Sanjiv Jivan <[hidden email]> wrote: > > > > I spent around around 30 mins today having all apps deployed but > wasn't able > > > > to replicate the issue. Can you sent the stack trace? Is this deployed > on a > > > > windows box? > > > > > > > > > > > > On 4/18/06, Matt Raible <[hidden email] > wrote: > > > > > > > > > On 4/17/06, Sanjiv Jivan <[hidden email]> wrote: > > > > > > > > > > hmm, cuz I just tried my testing using one AppFuse app deployed > > > > > (appfuse-jsf). I'll try again with all 5 deployed. > > > > > > > > > > Can you try replicating the OOM with only the appfuse-jsf app > deployed? > > > > > > > > No, it seems to be the combo. It doesn't go down though, just keeps > > > > climbing. I suspect there might be a sweetspot (768M or something), > > > > but I doubt it. I suspect a memory leak in one of the combos. > > > > > > > > Matt > > > > > > > > > > > > > > > > > > > > > > > > On 4/17/06, Matt Raible <[hidden email]> wrote: > > > > > > I have a scenario setup with WAPT that I can send. One thing to > note > > > > > > is that these OOM errors only show up when you have all 5 AppFuse > > > > > > flavors installed. Or at least the ones I have on demo.appfuse.org > - > > > > > > which includes Spring MVC with iBATIS. > > > > > > > > > > > > Matt > > > > > > > > > > > > On 4/17/06, Mika Göckel < [hidden email]> wrote: > > > > > > > What about setting up a load test scenario with canoo (if this > is > > > > > > > possible) or JMeter. > > > > > > > Manually clicking around didn't show up OOMs on my system > either. > > > > > > > > > > > > > > Its appfuse latest CVS with jsf (tried struts as well), tomcat > 5.5.9, > > > > > > > mysql 4.1.15 on XP. > > > > > > > > > > > > > > Matt Raible schrieb: > > > > > > > > I just used a normal database created by AppFuse. The Struts > Resume > > > > > > > > and wiki datasets are quite a bit larger, but I took them out > of the > > > > > > > > mix. I'll try to come up with a more definitive way to > reproduce in > > > > > > > > the next day or two. > > > > > > > > > > > > > > > > Matt > > > > > > > > > > > > > > > > On 4/17/06, Sanjiv Jivan < [hidden email]> wrote: > > > > > > > > > > > > > > > >> How large is your dataset? I haven't altered the default > tomcat Xmx > > > > > and > > > > > > > >> still didn't get an OOM error. Its going to be difficult for > me to > > > > > > > >> troubleshoot without being able to reproduce the issue. Not > sure if > > > > > it will > > > > > > > >> help, but maybe I can also try analysing your JProfiler > snapshot > > > > at > > > > > a point > > > > > > > >> when you're see this issue. > > > > > > > >> > > > > > > > >> > > > > > > > >> On 4/17/06, Matt Raible <[hidden email] > wrote: > > > > > > > >> > > > > > > > >> On 4/17/06, Sanjiv Jivan < [hidden email]> wrote: > > > > > > > >> > > > > > > > >>> Matt, > > > > > > > >>> I'm unable to reproduce this locally. I'm on XP, Tomcat > 5.5.16, > > > > > MySQL 4.1. > > > > > > > >>> Did you have a lot of data in your database? I've been > clicking on > > > > > links/ > > > > > > > >>> update/ sort etc for 10 - 15 minutes but the app does not > raise an > > > > > OOM > > > > > > > >>> > > > > > > > >> error > > > > > > > >> > > > > > > > >>> and the task manager memory footprint also reduces once I > stop > > > > > clicking > > > > > > > >>> > > > > > > > >> and > > > > > > > >> > > > > > > > >>> settles back to the low value after GC is done. Maybe > someone else > > > > > could > > > > > > > >>> > > > > > > > >> try > > > > > > > >> > > > > > > > >>> reproducing this. btw what JVM heap size are you running > with? And > > > > > at what > > > > > > > >>> memory size are you running out of memory. Do you have a > stack > > > > > trace? > > > > > > > >>> > > > > > > > >> I have my JAVA_OPTS set to -Xms256M -Xmx384M. I run out of > memory > > > > > > > >> around 550MB +. > > > > > > > >> > > > > > > > >> I don't have a stack trace, but I can get one if you'd like. > I'm > > > > > > > >> using JProfiler when I get the error. > > > > > > > >> > > > > > > > >> > > > > > > > >>> I did notice another thing though while manually stress > testing > > > > it. > > > > > > > >>> > > > > > > > >> Clicking > > > > > > > >> > > > > > > > >>> on the the save button of a user reached from > > > > > > > >>> "View Users" in rapid succession yields the following > exception. > > > > I > > > > > > > >>> > > > > > > > >> haven't > > > > > > > >> > > > > > > > >>> investigated this yet but this probably occurs when multiple > > > > threads > > > > > are > > > > > > > >>> trying to update the record concurrently. Not sure if this > > > > exception > > > > > is by > > > > > > > >>> design for Hibernate optimistic locking. > > > > > > > >>> > > > > > > > >> This is b/c we're using versioning on the User object. I > left it > > > > in > > > > > > > >> their since it seems like a useful feature. In other words, > it's > > > > > > > >> expected behavior. > > > > > > > >> > > > > > > > >> Matt > > > > > > > >> > > > > > > > >> > > > > > > > >>> [appfuse-jsf] ERROR [http-8080-Processor23] > > > > > > > >>> > > > > > > AbstractFlushingEventListener.performExecutions(300) | > > > > > > > >>> Could not synchronize > > > > > > > >>> database state with session > > > > > > > >>> org.hibernate.StaleObjectStateException: > Row was > > > > > updated > > > > > > > >>> > > > > > > > >> or > > > > > > > >> > > > > > > > >>> deleted by another transaction (or unsaved-value mapping was > > > > > > > >>> incorrect): [org.appfuse.model.User#2] > > > > > > > >>> at > > > > > > > >>> > > > > > > > >>> > > > > > > > >> > > > > > > > > > > org.hibernate.persister.entity.AbstractEntityPersister.check > > > > ( AbstractEntityPersister.java > > > > > :1635) > > > > > > > >> > > > > > > > >>> at > > > > > > > >>> > > > > > > > >>> > > > > > > > >> > > > > > > > > > > org.hibernate.persister.entity.AbstractEntityPersister.update > > > > > > > >> > > > > > > > >>> (AbstractEntityPersister.java :2208) > > > > > > > >>> at > > > > > > > >>> > > > > > > > >>> > > > > > > > >> > > > > > > > > > > org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert > (AbstractEntityPersister.java:2118) > > > > > > > >> > > > > > > > >>> at > > > > > > > >>> > > > > > > > >>> > > > > > > > >> > > > > > > > > > > org.hibernate.persister.entity.AbstractEntityPersister.update > > > > > > > >> > > > > > > > >>> (AbstractEntityPersister.java:2374) > > > > > > > >>> at > > > > > > > >>> > > > > > > > >>> > > > > > > > >> > > > > > > > > > > org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java > :91) > > > > > > > >> > > > > > > > >>> at > > > > > > > >>> > > > > > > org.hibernate.engine.ActionQueue.execute(ActionQueue.java > > > > > > > >>> > > > > > > > >> :248) > > > > > > > >> > > > > > > > >>> at > > > > > > > >>> > > > > > > > >> > org.hibernate.engine.ActionQueue.executeActions > > > > > > > >> > > > > > > > >>> (ActionQueue.java:232) > > > > > > > >>> at > > > > > > > >>> > > > > > > > >>> > > > > > > > >> > > > > > > > > > > org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140) > > > > > > > >> > > > > > > > >>> On 4/17/06, Matt Raible < [hidden email]> wrote: > > > > > > > >>> > > > > > > > >>> All, > > > > > > > >>> > > > > > > > >>> Ever since I deployed 1.9.1 to appfuse.org, Tomcat has been > > > > spewing > > > > > > > >>> OutOfMemory (OOM) errors. It only takes about a minute or > two > > > > after > > > > > a > > > > > > > >>> restart to get them, which really sucks. I've been doing > some > > > > > > > >>> profiling this evening and haven't been able to find > anything that > > > > > > > >>> definitive. However, it seems that Tapestry and JSF are the > worst > > > > > > > >>> offenders. I can add the other application flavors, and the > > > > memory > > > > > > > >>> usage gradually goes up as I click through the apps. If I > stop > > > > > > > >>> clicking, thing stabilize. With JSF, it shoots up and and > keeps > > > > > > > >>> climbing - almost up 150K. The heap size and stats in > JProfiler > > > > > look > > > > > > > >>> good, but Windows Task Manager shows JSF supplying the > biggest > > > > hit. > > > > > > > >>> > > > > > > > >>> Does anyone have the time to profile any of the AppFuse > flavors? > > > > I > > > > > > > >>> can send you any information you might need. > > > > > > > >>> > > > > > > > >>> Thanks, > > > > > > > >>> > > > > > > > >>> Matt > > > > > > > >>> > > > > > > > >>> > > > > > > > >>> > > > > > > > >> > > > > > > > > > > --------------------------------------------------------------------- > > > > > > > >> > > > > > > > >>> To unsubscribe, e-mail: > > > > > > > >>> [hidden email] > > > > > > > >>> For additional commands, e-mail: > [hidden email] > > > > > > > >>> > > > > > > > >>> > > > > > > > >>> > > > > > > > >>> > > > > > > > >>> > > > > > > > >> > > > > > > > > > > --------------------------------------------------------------------- > > > > > > > >> > > > > > > > >>> To unsubscribe, e-mail: > > > > > > > >>> [hidden email] > > > > > > > >>> For additional commands, e-mail: > [hidden email] > > > > > > > >>> > > > > > > > >>> > > > > > > > >>> > > > > > > > >>> > > > > > > > >> > > > > > > > > > > --------------------------------------------------------------------- > > > > > > > >> > > > > > > > >> To unsubscribe, e-mail: > > > > > > > >> [hidden email] > > > > > > > >> For additional commands, e-mail: > [hidden email] > > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > > > To unsubscribe, e-mail: > > > > > [hidden email] > > > > > > > > For additional commands, e-mail: [hidden email] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > cyber:con gmbh > > > > > > > Mika Göckel > > > > > > > > > > > > > > Rathausallee 10 > > > > > > > 53757 Sankt Augustin > > > > > > > > > > > > > > tel (+49)2241 / 9350 0 > > > > > > > fax (+49)2241 / 9350 99 > > > > > > > mob (+49) 172 / 279 2771 > > > > > > > skype mika.goeckel > > > > > > > email [hidden email] > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > > To unsubscribe, e-mail: > > > > > [hidden email] > > > > > > > For additional commands, e-mail: [hidden email] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > To unsubscribe, e-mail: > > > > > [hidden email] > > > > > > For additional commands, e-mail: [hidden email] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > > > To unsubscribe, e-mail: > > > > [hidden email] > > > > For additional commands, e-mail: [hidden email] > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: > [hidden email] > > For additional commands, e-mail: [hidden email] > > > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [hidden email] For additional commands, e-mail: [hidden email] |
||||||||||||||||
| Free Embeddable Forum Powered by Nabble | Help |