Hi All, >>@Chandana: Does default AppM configuration can create such # of DB connection at a given time? Yes, I think, 100 concurrent user login (not # of DB connections) is possible and it is a low value in typical AppM case. This particular "role creation" occurs at the first login of the user. Hight number of this call is but possible at the initial rollout at production. This is also one of the typical initial "Acceptance test criteria" any customer do before going into production.
However, it appears that this only happens in embedded H2. Hence I think this is not an issue at all. Cheers, Ruwan On Fri, Mar 25, 2016 at 7:51 PM, Chandana Napagoda <[email protected]> wrote: > Does default AppM configuration can create such # of DB connection at a > given time? > > Regards, > Chandana > > On Fri, Mar 25, 2016 at 5:36 PM, Thilini Shanika <[email protected]> > wrote: > >> We tested the same scenario pointing to a mysql db and did not encounter >> deadlocks anymore. As you mentioned, this issue specifically occurs with H2 >> db. >> >> On Fri, Mar 25, 2016 at 2:55 PM, Manuranga Perera <[email protected]> wrote: >> >>> [looping] >>> I think this coming form Greg layer and it is due to using H2. >>> Chandana please comment on this. >>> >>> On Fri, Mar 25, 2016 at 2:39 PM, Thilini Shanika <[email protected]> >>> wrote: >>> >>>> Adding Dev. >>>> >>>> On Fri, Mar 25, 2016 at 2:14 PM, Thilini Shanika <[email protected]> >>>> wrote: >>>> >>>>> >>>>> Hi ES team, >>>>> >>>>> During App Manager load testing on App Store user login we encountered >>>>> below exception (We are getting the error with 100 concurrent users). This >>>>> occurs during the initial user login at high concurrency. In each initial >>>>> user login, Internal/private_{username} role is created and it has been >>>>> assigned to the newly logged in user. The deadlock occurs during this role >>>>> creation time. >>>>> >>>>> Is ES Store login tested with high concurrency ? Or did you encounter >>>>> the similar issue in ES also? >>>>> >>>>> We are working on finding the root cause here. Thus, any insight would >>>>> be really appreciated. >>>>> >>>>> Thank you >>>>> Thilini >>>>> >>>>> ERROR - acs:jag org.mozilla.javascript.WrappedException: Wrapped >>>>> org.wso2.carbon.user.core.UserStoreException: Error! Deadlock detected. >>>>> The >>>>> current transaction was rolled back. Details: " >>>>> Session #99 (user: WSO2CARBON) is waiting to lock PUBLIC.UM_PERMISSION >>>>> while locking PUBLIC.UM_ROLE_PERMISSION (exclusive). >>>>> Session #102 (user: WSO2CARBON) is waiting to lock >>>>> PUBLIC.UM_ROLE_PERMISSION while locking PUBLIC.UM_PERMISSION >>>>> (exclusive)."; >>>>> SQL statement: >>>>> SELECT UM_ID, UM_IS_ALLOWED FROM UM_ROLE_PERMISSION WHERE >>>>> UM_ROLE_NAME=? AND UM_PERMISSION_ID = (SELECT UM_ID FROM UM_PERMISSION >>>>> WHERE UM_RESOURCE_ID = ? AND UM_ACTION = ? AND UM_TENANT_ID=?) AND >>>>> UM_TENANT_ID=? AND UM_DOMAIN_ID=(SELECT UM_DOMAIN_ID FROM UM_DOMAIN WHERE >>>>> UM_TENANT_ID=? AND UM_DOMAIN_NAME=?) [40001-140] >>>>> (<carbon>/scripts/user/user-manager.js#98) >>>>> at >>>>> org.mozilla.javascript.Context.throwAsScriptRuntimeEx(Context.java:1754) >>>>> at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:148) >>>>> at >>>>> org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:225) >>>>> at >>>>> org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52) >>>>> at >>>>> org.jaggeryjs.rhino.<carbon>.scripts.user.c0._c_anonymous_21(<carbon>/scripts/user/user-manager.js:98) >>>>> at >>>>> org.jaggeryjs.rhino.<carbon>.scripts.user.c0.call(<carbon>/scripts/user/user-manager.js) >>>>> at >>>>> org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52) >>>>> at >>>>> org.jaggeryjs.rhino.<store>.scripts.c0._c_anonymous_10(<store>/scripts/user.js:97) >>>>> at org.jaggeryjs.rhino.<store>.scripts.c0.call(<store>/scripts/user.js) >>>>> at >>>>> org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430) >>>>> at >>>>> org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269) >>>>> at >>>>> org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97) >>>>> at >>>>> org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42) >>>>> at >>>>> org.jaggeryjs.rhino.<event>.scripts.c0._c_anonymous_7(<event>/scripts/event.js:71) >>>>> at >>>>> org.jaggeryjs.rhino.<event>.scripts.c0.call(<event>/scripts/event.js) >>>>> at >>>>> org.mozilla.javascript.NativeArray.iterativeMethod(NativeArray.java:1584) >>>>> at org.mozilla.javascript.NativeArray.execIdCall(NativeArray.java:318) >>>>> at >>>>> org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97) >>>>> at >>>>> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32) >>>>> at >>>>> org.jaggeryjs.rhino.<event>.scripts.c0._c_anonymous_6(<event>/scripts/event.js:69) >>>>> at >>>>> org.jaggeryjs.rhino.<event>.scripts.c0.call(<event>/scripts/event.js) >>>>> at >>>>> org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52) >>>>> at >>>>> org.jaggeryjs.rhino.<store>.scripts.c0._c_anonymous_8(<store>/scripts/user.js:55) >>>>> at org.jaggeryjs.rhino.<store>.scripts.c0.call(<store>/scripts/user.js) >>>>> at >>>>> org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430) >>>>> at >>>>> org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269) >>>>> at >>>>> org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97) >>>>> at >>>>> org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42) >>>>> at >>>>> org.jaggeryjs.rhino.<event>.scripts.c0._c_anonymous_7(<event>/scripts/event.js:71) >>>>> at >>>>> org.jaggeryjs.rhino.<event>.scripts.c0.call(<event>/scripts/event.js) >>>>> at >>>>> org.mozilla.javascript.NativeArray.iterativeMethod(NativeArray.java:1584) >>>>> at org.mozilla.javascript.NativeArray.execIdCall(NativeArray.java:318) >>>>> at >>>>> org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97) >>>>> at >>>>> org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32) >>>>> at >>>>> org.jaggeryjs.rhino.<event>.scripts.c0._c_anonymous_6(<event>/scripts/event.js:69) >>>>> at >>>>> org.jaggeryjs.rhino.<event>.scripts.c0.call(<event>/scripts/event.js) >>>>> at >>>>> org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52) >>>>> at >>>>> org.jaggeryjs.rhino.store.modules.c7._c_anonymous_1(/store/modules/role.js:36) >>>>> at org.jaggeryjs.rhino.store.modules.c7.call(/store/modules/role.js) >>>>> at >>>>> org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42) >>>>> at >>>>> org.jaggeryjs.rhino.store.controllers.c1._c_anonymous_1(/store/controllers/acs.jag:103) >>>>> at >>>>> org.jaggeryjs.rhino.store.controllers.c1.call(/store/controllers/acs.jag) >>>>> at >>>>> org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:23) >>>>> at >>>>> org.jaggeryjs.rhino.store.controllers.c1._c_script_0(/store/controllers/acs.jag:7) >>>>> at >>>>> org.jaggeryjs.rhino.store.controllers.c1.call(/store/controllers/acs.jag) >>>>> at >>>>> org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394) >>>>> at >>>>> org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091) >>>>> at >>>>> org.jaggeryjs.rhino.store.controllers.c1.call(/store/controllers/acs.jag) >>>>> at >>>>> org.jaggeryjs.rhino.store.controllers.c1.exec(/store/controllers/acs.jag) >>>>> at >>>>> org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:567) >>>>> at >>>>> org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:273) >>>>> at >>>>> org.jaggeryjs.jaggery.core.manager.WebAppManager.exec(WebAppManager.java:587) >>>>> at >>>>> org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:507) >>>>> at >>>>> org.jaggeryjs.jaggery.core.JaggeryServlet.doPost(JaggeryServlet.java:29) >>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) >>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) >>>>> at >>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) >>>>> at >>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >>>>> at >>>>> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748) >>>>> at >>>>> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486) >>>>> at >>>>> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:378) >>>>> at >>>>> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338) >>>>> at >>>>> org.jaggeryjs.jaggery.core.JaggeryFilter.doFilter(JaggeryFilter.java:21) >>>>> at >>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) >>>>> at >>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >>>>> at >>>>> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) >>>>> at >>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) >>>>> at >>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >>>>> at >>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) >>>>> at >>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) >>>>> at >>>>> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504) >>>>> at >>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) >>>>> at >>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) >>>>> at >>>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99) >>>>> at >>>>> org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47) >>>>> at >>>>> org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57) >>>>> at >>>>> org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47) >>>>> at >>>>> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62) >>>>> at >>>>> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159) >>>>> at >>>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) >>>>> at >>>>> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57) >>>>> at >>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) >>>>> at >>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421) >>>>> at >>>>> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074) >>>>> at >>>>> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) >>>>> at >>>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1739) >>>>> at >>>>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1698) >>>>> at >>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >>>>> at >>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >>>>> at >>>>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) >>>>> at java.lang.Thread.run(Thread.java:745) >>>>> Caused by: org.wso2.carbon.user.core.UserStoreException: Error! >>>>> Deadlock detected. The current transaction was rolled back. Details: " >>>>> Session #99 (user: WSO2CARBON) is waiting to lock PUBLIC.UM_PERMISSION >>>>> while locking PUBLIC.UM_ROLE_PERMISSION (exclusive). >>>>> Session #102 (user: WSO2CARBON) is waiting to lock >>>>> PUBLIC.UM_ROLE_PERMISSION while locking PUBLIC.UM_PERMISSION >>>>> (exclusive)."; >>>>> SQL statement: >>>>> SELECT UM_ID, UM_IS_ALLOWED FROM UM_ROLE_PERMISSION WHERE >>>>> UM_ROLE_NAME=? AND UM_PERMISSION_ID = (SELECT UM_ID FROM UM_PERMISSION >>>>> WHERE UM_RESOURCE_ID = ? AND UM_ACTION = ? AND UM_TENANT_ID=?) AND >>>>> UM_TENANT_ID=? AND UM_DOMAIN_ID=(SELECT UM_DOMAIN_ID FROM UM_DOMAIN WHERE >>>>> UM_TENANT_ID=? AND UM_DOMAIN_NAME=?) [40001-140] >>>>> at >>>>> org.wso2.carbon.user.core.authorization.JDBCAuthorizationManager.addAuthorizationForRole(JDBCAuthorizationManager.java:837) >>>>> at >>>>> org.wso2.carbon.user.core.authorization.JDBCAuthorizationManager.authorizeRole(JDBCAuthorizationManager.java:405) >>>>> at >>>>> org.wso2.carbon.registry.core.secure.AuthorizeRoleListener.authorizeRole(AuthorizeRoleListener.java:156) >>>>> at >>>>> org.wso2.carbon.user.core.authorization.JDBCAuthorizationManager.authorizeRole(JDBCAuthorizationManager.java:396) >>>>> at >>>>> org.wso2.carbon.registry.core.secure.AuthorizeRoleListener.authorizeRole(AuthorizeRoleListener.java:156) >>>>> at >>>>> org.wso2.carbon.user.core.authorization.JDBCAuthorizationManager.authorizeRole(JDBCAuthorizationManager.java:396) >>>>> at >>>>> org.wso2.carbon.user.core.common.AbstractUserStoreManager.doAddInternalRole(AbstractUserStoreManager.java:2942) >>>>> at >>>>> org.wso2.carbon.user.core.common.AbstractUserStoreManager.addRole(AbstractUserStoreManager.java:2499) >>>>> at >>>>> org.wso2.carbon.user.core.common.AbstractUserStoreManager.addRole(AbstractUserStoreManager.java:3951) >>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>> at >>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >>>>> at >>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>>> at java.lang.reflect.Method.invoke(Method.java:606) >>>>> at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:126) >>>>> ... 89 more >>>>> Caused by: org.h2.jdbc.JdbcSQLException: Deadlock detected. The >>>>> current transaction was rolled back. Details: " >>>>> Session #99 (user: WSO2CARBON) is waiting to lock PUBLIC.UM_PERMISSION >>>>> while locking PUBLIC.UM_ROLE_PERMISSION (exclusive). >>>>> Session #102 (user: WSO2CARBON) is waiting to lock >>>>> PUBLIC.UM_ROLE_PERMISSION while locking PUBLIC.UM_PERMISSION >>>>> (exclusive)."; >>>>> SQL statement: >>>>> SELECT UM_ID, UM_IS_ALLOWED FROM UM_ROLE_PERMISSION WHERE >>>>> UM_ROLE_NAME=? AND UM_PERMISSION_ID = (SELECT UM_ID FROM UM_PERMISSION >>>>> WHERE UM_RESOURCE_ID = ? AND UM_ACTION = ? AND UM_TENANT_ID=?) AND >>>>> UM_TENANT_ID=? AND UM_DOMAIN_ID=(SELECT UM_DOMAIN_ID FROM UM_DOMAIN WHERE >>>>> UM_TENANT_ID=? AND UM_DOMAIN_NAME=?) [40001-140] >>>>> at org.h2.message.DbException.getJdbcSQLException(DbException.java:327) >>>>> at org.h2.message.DbException.get(DbException.java:167) >>>>> at org.h2.message.DbException.get(DbException.java:144) >>>>> at org.h2.table.RegularTable.doLock(RegularTable.java:457) >>>>> at org.h2.table.RegularTable.lock(RegularTable.java:404) >>>>> at org.h2.table.TableFilter.lock(TableFilter.java:139) >>>>> at org.h2.command.dml.Select.queryWithoutCache(Select.java:554) >>>>> at org.h2.command.dml.Query.query(Query.java:241) >>>>> at org.h2.command.CommandContainer.query(CommandContainer.java:80) >>>>> at org.h2.command.Command.executeQuery(Command.java:132) >>>>> at >>>>> org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:96) >>>>> at >>>>> org.wso2.carbon.user.core.authorization.JDBCAuthorizationManager.addAuthorizationForRole(JDBCAuthorizationManager.java:783) >>>>> ... 102 more >>>>> >>>>> -- >>>>> Thilini Shanika >>>>> Software Engineer >>>>> WSO2, Inc.; http://wso2.com >>>>> 20, Palmgrove Avenue, Colombo 3 >>>>> >>>>> E-mail: [email protected] >>>>> >>>>> >>>> >>>> >>>> -- >>>> Thilini Shanika >>>> Software Engineer >>>> WSO2, Inc.; http://wso2.com >>>> 20, Palmgrove Avenue, Colombo 3 >>>> >>>> E-mail: [email protected] >>>> >>>> >>> >>> >>> -- >>> With regards, >>> *Manu*ranga Perera. >>> >>> phone : 071 7 70 20 50 >>> mail : [email protected] >>> >> >> >> >> -- >> Thilini Shanika >> Software Engineer >> WSO2, Inc.; http://wso2.com >> 20, Palmgrove Avenue, Colombo 3 >> >> E-mail: [email protected] >> >> > > > -- > *Chandana Napagoda* > Senior Software Engineer > WSO2 Inc. - http://wso2.org > > *Email : [email protected] <[email protected]>**Mobile : +94718169299 > <%2B94718169299>* > > *Blog : http://cnapagoda.blogspot.com <http://cnapagoda.blogspot.com>* > > -- *Ruwan Abeykoon* *Architect,* *WSO2, Inc. http://wso2.com <http://wso2.com/> * *lean.enterprise.middleware.* email: [email protected]
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
