You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Joerg Hoh (Jira)" <ji...@apache.org> on 2022/02/07 11:08:00 UTC

[jira] [Closed] (SLING-4731) bgservlet consumes all memory during large uploads in background

     [ https://issues.apache.org/jira/browse/SLING-4731?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Joerg Hoh closed SLING-4731.
----------------------------

> bgservlet consumes all memory during large uploads in background
> ----------------------------------------------------------------
>
>                 Key: SLING-4731
>                 URL: https://issues.apache.org/jira/browse/SLING-4731
>             Project: Sling
>          Issue Type: Bug
>          Components: Extensions
>    Affects Versions: Background Servlets 1.0.0
>            Reporter: Joerg Hoh
>            Priority: Major
>
> When you do an upload of a large file with "sling:bg=true" appended, the BackgroundHttpServletRequest loads the complete inputstream into memory.
> Would it be possible to have something less memory-intensive? Of course a file upload in the background is questionable ...
> {code}
> 21.05.2015 10:59:53.290 *ERROR* [pool-28-thread-7] org.apache.sling.engine.impl.SlingRequestProcessorImpl service: Uncaught Throwable
> java.lang.OutOfMemoryError: Java heap space
>                 at java.lang.StringBuffer.ensureCapacityImpl(StringBuffer.java:338)
>                 at java.lang.StringBuffer.append(StringBuffer.java:131)
>                 at java.net.URLEncoder.encode(URLEncoder.java:211)
>                 at org.apache.sling.bgservlets.BackgroundHttpServletRequest.encode(BackgroundHttpServletRequest.java:260)
>                 at org.apache.sling.bgservlets.BackgroundHttpServletRequest.append(BackgroundHttpServletRequest.java:272)
>                 at org.apache.sling.bgservlets.BackgroundHttpServletRequest.getInputStream(BackgroundHttpServletRequest.java:283)
>                 at org.apache.commons.fileupload.servlet.ServletRequestContext.getInputStream(ServletRequestContext.java:112)
>                 at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:952)
>                 at org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:310)
>                 at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:334)
>                 at org.apache.sling.engine.impl.parameters.ParameterSupport.parseMultiPartPost(ParameterSupport.java:349)
>                 at org.apache.sling.engine.impl.parameters.ParameterSupport.getRequestParameterMapInternal(ParameterSupport.java:279)
>                 at org.apache.sling.engine.impl.parameters.ParameterSupport.getParameter(ParameterSupport.java:173)
>                 at org.apache.sling.engine.impl.SlingHttpServletRequestImpl.getParameter(SlingHttpServletRequestImpl.java:142)
>                 at org.apache.sling.bgservlets.impl.BackgroundServletStarterFilter.doFilter(BackgroundServletStarterFilter.java:105)
>                 at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)
>                 at com.adobe.cq.social.commons.security.SaferSlingPostServlet.doFilter(SaferSlingPostServlet.java:132)
>                 at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)
>                 at com.adobe.granite.requests.logging.impl.RequestLoggerImpl.doFilter(RequestLoggerImpl.java:124)
>                 at org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:60)
>                 at org.apache.sling.engine.impl.SlingRequestProcessorImpl.doProcessRequest(SlingRequestProcessorImpl.java:151)
>                 at org.apache.sling.engine.impl.SlingRequestProcessorImpl.processRequest(SlingRequestProcessorImpl.java:247)
>                 at org.apache.sling.bgservlets.impl.BackgroundRequestExecutionJob.run(BackgroundRequestExecutionJob.java:99)
>                 at org.apache.sling.bgservlets.impl.ExecutionEngineImpl$RunnableWrapper.run(ExecutionEngineImpl.java:87)
>                 at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:906)
>                 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:929)
>                 at java.lang.Thread.run(Thread.java:761)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)