Uploaded image for project: '[Read Only] - Hippo Repository'
  1. [Read Only] - Hippo Repository
  2. REPO-515

Make the ping servlet only handle one request at the time

    XMLWordPrintable

Details

    • Improvement
    • Status: Closed
    • Normal
    • Resolution: Fixed
    • None
    • 2.22.11, 2.24.00
    • None
    • None
    • FIX VERSION 2.23.05? (it's not available in the list)

    Description

      When the repository is not available yet (for example during startup) all threads/requests will stall on the database which leads to a large amount of the following errors:

      06.08.2012 00:52:51 ERROR [org.apache.jackrabbit.core.util.db.ConnectionHelper$RetryManager.doTry():498] Failed to execute SQL (stacktrace on DEBUG log level)
      org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object
      at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:114)
      at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
      at org.apache.jackrabbit.core.util.db.ConnectionHelper.getConnection(ConnectionHelper.java:428)
      at org.apache.jackrabbit.core.util.db.ConnectionHelper.reallyExec(ConnectionHelper.java:383)
      at org.apache.jackrabbit.core.util.db.ConnectionHelper$3.call(ConnectionHelper.java:371)
      at org.apache.jackrabbit.core.util.db.ConnectionHelper$3.call(ConnectionHelper.java:367)
      at org.apache.jackrabbit.core.util.db.ConnectionHelper$RetryManager.doTry(ConnectionHelper.java:494)
      at org.apache.jackrabbit.core.util.db.ConnectionHelper.exec(ConnectionHelper.java:367)
      at org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager.loadBundle(BundleDbPersistenceManager.java:1033)
      at org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.getBundle(AbstractBundlePersistenceManager.java:667)
      at org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.exists(AbstractBundlePersistenceManager.java:488)
      at org.apache.jackrabbit.core.state.SharedItemStateManager.hasNonVirtualItemState(SharedItemStateManager.java:1775)
      at org.apache.jackrabbit.core.state.SharedItemStateManager.hasItemState(SharedItemStateManager.java:307)
      at org.hippoecm.repository.jackrabbit.HippoSharedItemStateManager.hasItemState(HippoSharedItemStateManager.java:137)
      at org.apache.jackrabbit.core.state.ForkedXAItemStateManager.hasItemState(ForkedXAItemStateManager.java:305)
      at org.hippoecm.repository.jackrabbit.HippoLocalItemStateManager.hasItemState(HippoLocalItemStateManager.java:413)
      at org.apache.jackrabbit.core.state.SessionItemStateManager.hasItemState(SessionItemStateManager.java:182)
      at org.apache.jackrabbit.core.ItemManager.itemExists(ItemManager.java:301)
      at org.apache.jackrabbit.core.ItemManager.itemExists(ItemManager.java:523)
      at org.apache.jackrabbit.core.NodeImpl.hasNode(NodeImpl.java:2222)
      at org.hippoecm.repository.security.user.AbstractUserManager.getUser(AbstractUserManager.java:169)
      at org.hippoecm.repository.security.SecurityManager.authenticate(SecurityManager.java:274)
      at org.hippoecm.repository.security.HippoLoginModule.login(HippoLoginModule.java:142)
      at org.apache.jackrabbit.core.security.authentication.LocalAuthContext.login(LocalAuthContext.java:88)
      at org.apache.jackrabbit.core.RepositoryImpl.login(RepositoryImpl.java:1474)
      at org.hippoecm.repository.impl.RepositoryDecorator.login(RepositoryDecorator.java:84)
      at org.hippoecm.repository.decorating.checked.RepositoryDecorator.login(RepositoryDecorator.java:78)
      at org.hippoecm.repository.HippoRepositoryImpl.login(HippoRepositoryImpl.java:116)
      at org.hippoecm.repository.HippoRepositoryImpl.login(HippoRepositoryImpl.java:104)
      at org.hippoecm.repository.PingServlet.obtainSession(PingServlet.java:245)
      at org.hippoecm.repository.PingServlet.doRepositoryChecks(PingServlet.java:224)
      at org.hippoecm.repository.PingServlet.doGet(PingServlet.java:183)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:370)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.hippoecm.frontend.ResourceRewriteFilter.doFilter(ResourceRewriteFilter.java:129)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.hippoecm.frontend.plugins.login.ConcurrentLoginFilter.doFilter(ConcurrentLoginFilter.java:54)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
      at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:396)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:662)
      Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
      at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1167)
      at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
      ... 56 more

      Only one request at the time should be handled.

      Attachments

        Activity

          People

            svoortman Simon Voortman (Inactive)
            bvdschans Bart van der Schans (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: