Uploaded image for project: 'Sakai'
  1. Sakai
  2. SAK-16533

Creating a zipfile exhausts all DB connections

    Details

    • Type: Bug
    • Status: CLOSED
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.6.x
    • Fix Version/s: 2.6.2
    • Component/s: Content
    • Labels:
      None
    • Environment:
      2.5.x with SAK-800 applied, uploaded content in DB (mysql)
    • Test Plan:
      Hide

      Create a folder with 100 files in it and attempt to compress it to a zip.

      Show
      Create a folder with 100 files in it and attempt to compress it to a zip.

      Description

      When attempting to zip up a folder with several files (+50 in default config) in it all the operation exhausts all the DB connections and causes a hang.

      WARN: Sql.dbRead: sql: select XML, BINARY_ENTITY from CONTENT_RESOURCE where (RESOURCE_ID = ?) /group/c71a8134-05fc-4344-acd7-18fb24cfe3d2/test/content-api/bin/org/sakaiproject/content/api/ExpandableResourceType.class (2009-06-10 14:00:25,853 http-8080-Processor2_org.sakaiproject.db.impl.BasicSqlService)
      org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object
      at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:104)
      at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
      at org.sakaiproject.db.impl.BasicSqlService.borrowConnection(BasicSqlService.java:259)
      at org.sakaiproject.db.impl.BasicSqlService.dbRead(BasicSqlService.java:540)
      at org.sakaiproject.db.impl.BasicSqlService.dbRead(BasicSqlService.java:469)
      at org.sakaiproject.util.BaseDbDualSingleStorage.loadResources(BaseDbDualSingleStorage.java:474)
      at org.sakaiproject.util.BaseDbDualSingleStorage.getResource(BaseDbDualSingleStorage.java:315)
      at org.sakaiproject.content.impl.DbContentService$DbStorage.getResource(DbContentService.java:1426)
      at org.sakaiproject.content.impl.BaseContentService.findResource(BaseContentService.java:4236)
      at org.sakaiproject.content.impl.BaseContentService.getResource(BaseContentService.java:4162)
      at org.sakaiproject.content.cover.ContentHostingService.getResource(ContentHostingService.java:631)
      at org.sakaiproject.content.impl.util.ZipContentUtil.storeContentCollection(ZipContentUtil.java:182)
      at org.sakaiproject.content.impl.util.ZipContentUtil.storeContentCollection(ZipContentUtil.java:179)
      at org.sakaiproject.content.impl.util.ZipContentUtil.storeContentCollection(ZipContentUtil.java:179)
      at org.sakaiproject.content.impl.util.ZipContentUtil.storeContentCollection(ZipContentUtil.java:179)
      at org.sakaiproject.content.impl.util.ZipContentUtil.storeContentCollection(ZipContentUtil.java:179)
      at org.sakaiproject.content.impl.util.ZipContentUtil.storeContentCollection(ZipContentUtil.java:179)
      at org.sakaiproject.content.impl.util.ZipContentUtil.storeContentCollection(ZipContentUtil.java:179)
      at org.sakaiproject.content.impl.util.ZipContentUtil.compressFolder(ZipContentUtil.java:45)
      at org.sakaiproject.content.types.FolderType$FolderCompressAction.initializeAction(FolderType.java:1459)
      at org.sakaiproject.content.tool.ResourcesAction.doDispatchAction(ResourcesAction.java:6138)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at org.sakaiproject.cheftool.VelocityPortletPaneledAction.actionDispatch(VelocityPortletPaneledAction.java:601)
      at org.sakaiproject.cheftool.VelocityPortletPaneledAction.processAction(VelocityPortletPaneledAction.java:517)
      at org.sakaiproject.cheftool.ToolServlet.doGet(ToolServlet.java:221)
      at org.sakaiproject.cheftool.VelocityPortletPaneledAction.doGet(VelocityPortletPaneledAction.java:1016)
      at org.sakaiproject.cheftool.ToolServlet.doPost(ToolServlet.java:151)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
      at org.sakaiproject.vm.ComponentServlet.service(ComponentServlet.java:56)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
      at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:574)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
      at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
      at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:364)
      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
      at org.sakaiproject.tool.impl.ActiveToolComponent$MyActiveTool.forward(ActiveToolComponent.java:459)
      at org.sakaiproject.portal.charon.SkinnableCharonPortal.forwardTool(SkinnableCharonPortal.java:1229)
      at org.sakaiproject.portal.charon.handlers.HierarchyToolHandler.doTool(HierarchyToolHandler.java:127)
      at org.sakaiproject.portal.charon.handlers.ToolHandler.doGet(ToolHandler.java:88)
      at org.sakaiproject.portal.charon.handlers.ToolHandler.doPost(ToolHandler.java:65)
      at org.sakaiproject.portal.charon.SkinnableCharonPortal.doPost(SkinnableCharonPortal.java:1072)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
      at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:611)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
      at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
      at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
      at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
      at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
      at java.lang.Thread.run(Thread.java:613)
      Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
      at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:825)
      at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96)
      ... 66 more

        Gliffy Diagrams

          Zeplin

            Attachments

              Issue Links

                Activity

                  People

                  Assignee:
                  Unassigned Unassigned
                  Reporter:
                  buckett Matthew Buckett
                  Votes:
                  0 Vote for this issue
                  Watchers:
                  1 Start watching this issue

                    Dates

                    Created:
                    Updated:
                    Resolved:

                      Git Integration