Skip to Content.
Sympa Menu

grouper-users - RE: [grouper-users] Grouper Issues Under Load

Subject: Grouper Users - Open Discussion List

List archive

RE: [grouper-users] Grouper Issues Under Load


Chronological Thread 
  • From: Chris Hyzer <>
  • To: Stephen Langella <>
  • Cc: Tom Zeller <>, "" <>
  • Subject: RE: [grouper-users] Grouper Issues Under Load
  • Date: Wed, 8 Feb 2012 13:02:50 +0000
  • Accept-language: en-US

Right now it is not stable I think… you can try if you like, though I would wait 10 days until it is a release-candidate…

 

When I google that exception, I see that no one who gets the exception has thread issues… I think it is a hibernate problem, though a fix might be how objects are flushed from the session or evicted or something…

 

The stack says it happens during:

 

      list = query.list();

 

Which makes it hard for me to think about how we could flush or evict differently, hmmm

 

I don’t think you are the first person to see this exception though, which is why we decided to upgrade hibernate.

 

Thanks,

Chris

 

 

From: Stephen Langella [mailto:]
Sent: Tuesday, February 07, 2012 10:35 PM
To: Chris Hyzer
Cc: Tom Zeller;
Subject: Re: [grouper-users] Grouper Issues Under Load

 

Chris,

 

            I can give Grouper 2.1/Hibernate 3.6.7 a try if you would like, but I don't see how upgrading the version of hibernate will fix thread safety issues in Grouper.  Are the maven artifacts for Grouper 2.1 published in a maven repository somewhere?

 

--Steve

 

Stephen Langella

Inventrio

545 Metro Place South, Suite 475

Dublin OH 43017

(614) 389-2795 ext. 102

 

 

 

On Feb 7, 2012, at 9:14 PM, Chris Hyzer wrote:



Grouper 2.1 is Hibernate 3.6.7… I hesitate to want to spend too much time on previous hibernate versions…  does that work for you to wait until a more recent hibernate?  I don’t see how the code is a problem, its seems like a hibernate thing…

 

Thanks,

Chris

 

From: Stephen Langella [mailto:] 
Sent: Tuesday, February 07, 2012 9:03 PM
To: Chris Hyzer; Tom Zeller
Cc: 
Subject: Re: [grouper-users] Grouper Issues Under Load

 

Chris, Tom,

 

            We are using Mysql for the database, grouper is running in ServiceMix where multiple threads cant hit a single instance.   However we are noticing these exception in our testing environment which executes many test serially over 60 minutes where at most 2 threads access grouper at once, but most of the time one thread is accessing it.   I do notice that once it starts happening (about halfway through the tests) it continues to happen consistently.   

Grouper is accessed hundreds of time over the coarse of the test however as I mentioned mostly serially.    With respect to hibernate, we actually had to use a newer version of hibernate (3.3.1.GA) due to conflicts with other components of the system.  I have tried this running this tests against Grouper 1.6.3 and Grouper 2.0.3, and have the same results.  We first noticed this in 1.6.3, we decided to upgrade to 2.0.3, in hope that it was a problem that was fixed.

 

--Steve

 

Stephen Langella

Inventrio

545 Metro Place South, Suite 475

Dublin OH 43017

(614) 389-2795 ext. 102

 

 

 

On Feb 7, 2012, at 5:31 PM, Chris Hyzer wrote:




What type of DB are you using?  Is it under real load or a load test?  If load test is it a web based test or a command line test?  What type of operations (if load test) are running and what is the load?  I hope I can reproduce it locally to have a chance at reproducing it.  When this was raised before we decided to upgrade hibernate in 2.1, when that is stable (in a few weeks) do you think you could try it in your env to see if it fixes the problem?

 

Thanks,

Chris

 

From:  [mailto:] On Behalf Of Stephen Langella
Sent: Tuesday, February 07, 2012 2:51 PM
To: 
Subject: [grouper-users] Grouper Issues Under Load

 

All,

 

            We are getting the following exception very consistently when grouper is under load.   We are using Grouper 2.0.3, we also get the exception when using Grouper 1.6.3.  Any help or guidance would be appreciated.    

 

Caused by: com.inventrio.common.exceptions.SystemException: possible non-threadsafe access to the session,

Problem in HibernateSession: HibernateSession: isNew: true, isReadonly: true, grouperTransactionType: READONLY_NEW,

Exception in list: (class [Ljava.lang.Object;), ByHqlStatic, query: 'select distinct ms, m from MembershipEntry as ms, Member as m, Field as field where       ms.ownerGroupId   = :owner            and  ms.memberUuid  = :member           and  ms.fieldId = :fuuid and  ms.memberUuid  = m.uuid     and ms.enabledDb = 'T'', cacheable: true, cacheRegion: edu.internet2.middleware.grouper.internal.dao.hib3.Hib3MembershipDAO, tx type: null, tx type: nullBind var[0]: 'Param (class java.lang.String): 'owner'->'d3f8f7585fd44276abb84a736bde227a', Bind var[1]: 'Param (class java.lang.String): 'member'->'6e74b5119d6f471dbd104758f05ab0c3'Bind var[2]: 'Param (class java.lang.String): 'fuuid'->'46c42d89206b4718b1938e72c278e5df', 

            at com.inventrio.group.service.core.GroupService.isMemberOf(GroupService.java:863)

            at sun.reflect.GeneratedMethodAccessor662.invoke(Unknown Source)

            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

            at java.lang.reflect.Method.invoke(Method.java:597)

            at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)

            at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)

            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)

            at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:56)

            at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:39)

            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

            at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)

            at $Proxy277.isMemberOf(Unknown Source)

            at com.inventrio.group.client.GroupClient$20.run(GroupClient.java:538)

            at com.inventrio.group.client.GroupClient$20.run(GroupClient.java:535)

            at java.security.AccessController.doPrivileged(Native Method)

            at javax.security.auth.Subject.doAs(Subject.java:396)

            at com.inventrio.group.client.GroupClient.isMemberOf(GroupClient.java:535)

            at com.inventrio.group.client.Group.isMemberOf(Group.java:147)

            at com.inventrio.itest.vcms.scenarios.AddAccountManagerScenario.addAccountManager(AddAccountManagerScenario.java:77)

            ... 9 more

Caused by: org.hibernate.AssertionFailure: possible non-threadsafe access to the session,

Problem in HibernateSession: HibernateSession: isNew: true, isReadonly: true, grouperTransactionType: READONLY_NEW,

Exception in list: (class [Ljava.lang.Object;), ByHqlStatic, query: 'select distinct ms, m from MembershipEntry as ms, Member as m, Field as field where       ms.ownerGroupId   = :owner            and  ms.memberUuid  = :member           and  ms.fieldId = :fuuid and  ms.memberUuid  = m.uuid     and ms.enabledDb = 'T'', cacheable: true, cacheRegion: edu.internet2.middleware.grouper.internal.dao.hib3.Hib3MembershipDAO, tx type: null, tx type: nullBind var[0]: 'Param (class java.lang.String): 'owner'->'d3f8f7585fd44276abb84a736bde227a', Bind var[1]: 'Param (class java.lang.String): 'member'->'6e74b5119d6f471dbd104758f05ab0c3'Bind var[2]: 'Param (class java.lang.String): 'fuuid'->'46c42d89206b4718b1938e72c278e5df', 

            at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:123)

            at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:877)

            at org.hibernate.loader.Loader.doQuery(Loader.java:752)

            at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)

            at org.hibernate.loader.Loader.doList(Loader.java:2228)

            at org.hibernate.loader.Loader.listUsingQueryCache(Loader.java:2157)

            at org.hibernate.loader.Loader.list(Loader.java:2117)

            at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)

            at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:361)

            at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)

            at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1148)

            at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)

            at edu.internet2.middleware.grouper.hibernate.ByHql.list(ByHql.java:303)

            at edu.internet2.middleware.grouper.hibernate.ByHqlStatic$2.callback(ByHqlStatic.java:356)

            at edu.internet2.middleware.grouper.hibernate.HibernateSession.callbackHibernateSession(HibernateSession.java:500)

            at edu.internet2.middleware.grouper.hibernate.ByHqlStatic.list(ByHqlStatic.java:346)

            at edu.internet2.middleware.grouper.hibernate.ByHqlStatic.listSet(ByHqlStatic.java:395)

            at edu.internet2.middleware.grouper.internal.dao.hib3.Hib3MembershipDAO.findAllByGroupOwnerAndMemberAndField(Hib3MembershipDAO.java:417)

            at edu.internet2.middleware.grouper.Member.isMember(Member.java:2482)

            at edu.internet2.middleware.grouper.Member.isMember(Member.java:2328)

            at edu.internet2.middleware.grouper.Group.hasMember(Group.java:3863)

            at edu.internet2.middleware.grouper.Group.hasMember(Group.java:3829)

            at com.inventrio.group.service.core.GroupService.isMemberOf(GroupService.java:852)

            ... 27 more

 

 

--Steve

 

 

Stephen Langella

Inventrio

545 Metro Place South, Suite 475

Dublin OH 43017

(614) 389-2795 ext. 102

 

 

 




Archive powered by MHonArc 2.6.16.

Top of Page