Uploaded image for project: 'XWiki Platform'
  1. XWiki Platform
  2. XWIKI-24117

OOM when resizing a lot of images concurrently

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • Major
    • None
    • 18.1.0
    • Attachments
    • Unknown
    • N/A
    • N/A

    Description

      The affect version is likely older and needs to be refined.

      Reproduction steps

      1. go to any page
      2. on the attachment panel, click on upload and select a lot of attachments at once (320 pictures of more than 11.9 MB each in my case)
      3. wait for a while for the uploads to be done

      Expected

      All attachments are uploaded and are not corrupt

      Actual

      • Computing the small images from the image column is failing for a lot of pictures
      • A java heap space error is printed in the logs
      java.lang.OutOfMemoryError: Java heap space
      Dumping heap to data/java_pid51440.hprof ...
      Heap dump file created [1010375259 bytes in 1,405 secs]
      2026-03-12 14:50:47,849 [qtp278240974-47 - http://localhost:8080/xwiki/bin/download/Main/WebHome/2024-12-08-TPE_Y2A0912.JPG?width=48&rev=1.1] WARN  c.x.x.w.XWikiAction            - Uncaught exception: Error number 0 in 11: Uncaught exception 
      com.xpn.xwiki.XWikiException: Error number 0 in 11: Uncaught exception
      	at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:662)
      	at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:339)
      	at com.xpn.xwiki.web.LegacyActionServlet.service(LegacyActionServlet.java:111)
      	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:723)
      	at org.eclipse.jetty.ee11.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1393)
      	at org.eclipse.jetty.ee11.servlet.ServletHolder.handle(ServletHolder.java:750)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1668)
      	at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:123)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.xwiki.wysiwyg.filter.ConversionFilter.doFilter(ConversionFilter.java:71)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:66)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:135)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:212)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.xwiki.container.servlet.filters.internal.SafeRedirectFilter.doFilter(SafeRedirectFilter.java:106)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.xwiki.container.servlet.filters.internal.ResolveRelativeRedirectFilter.doFilter(ResolveRelativeRedirectFilter.java:129)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.xwiki.container.servlet.filters.internal.SourceURLResolverFilter.doFilter(SourceURLResolverFilter.java:177)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:120)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:208)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.eclipse.jetty.ee11.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:199)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$MappedServlet.handle(ServletHandler.java:1602)
      	at org.eclipse.jetty.ee11.servlet.ServletChannel.dispatch(ServletChannel.java:868)
      	at org.eclipse.jetty.ee11.servlet.ServletChannel.handle(ServletChannel.java:449)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler.handle(ServletHandler.java:470)
      	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:546)
      	at org.eclipse.jetty.ee11.servlet.SessionHandler.handle(SessionHandler.java:763)
      	at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1224)
      	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:178)
      	at org.eclipse.jetty.server.Server.handle(Server.java:197)
      	at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:787)
      	at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:410)
      	at org.eclipse.jetty.server.internal.HttpConnection$FillableCallback.succeeded(HttpConnection.java:1805)
      	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
      	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:54)
      	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:492)
      	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.epcRunTask(AdaptiveExecutionStrategy.java:428)
      	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:401)
      	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:255)
      	at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.produce(AdaptiveExecutionStrategy.java:196)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:1009)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1239)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1194)
      	at java.base/java.lang.Thread.run(Thread.java:1583)
      Caused by: java.lang.OutOfMemoryError: Java heap space
      	at java.desktop/java.awt.image.DataBufferInt.<init>(DataBufferInt.java:76)
      	at java.desktop/java.awt.image.Raster.createPackedRaster(Raster.java:538)
      	at java.desktop/java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1032)
      	at java.desktop/java.awt.image.BufferedImage.<init>(BufferedImage.java:333)
      	at net.coobird.thumbnailator.builders.BufferedImageBuilder.build(Unknown Source)
      	at net.coobird.thumbnailator.makers.ThumbnailMaker.makeThumbnail(Unknown Source)
      	at net.coobird.thumbnailator.makers.ScaledThumbnailMaker.make(Unknown Source)
      	at net.coobird.thumbnailator.Thumbnailator.createThumbnail(Unknown Source)
      	at net.coobird.thumbnailator.Thumbnails$Builder.asBufferedImage(Unknown Source)
      	at com.xpn.xwiki.internal.plugin.image.ThumbnailatorImageProcessor.readImage(ThumbnailatorImageProcessor.java:65)
      	at com.xpn.xwiki.plugin.image.ImagePlugin.shrinkImage(ImagePlugin.java:316)
      	at com.xpn.xwiki.plugin.image.ImagePlugin.downloadImageFromCache(ImagePlugin.java:290)
      	at com.xpn.xwiki.plugin.image.ImagePlugin.downloadImage(ImagePlugin.java:255)
      	at com.xpn.xwiki.plugin.image.ImagePlugin.downloadAttachment(ImagePlugin.java:221)
      	at com.xpn.xwiki.plugin.XWikiPluginManager.downloadAttachment(XWikiPluginManager.java:283)
      	at com.xpn.xwiki.web.DownloadAction.render(DownloadAction.java:157)
      	at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:637)
      	at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:339)
      	at com.xpn.xwiki.web.LegacyActionServlet.service(LegacyActionServlet.java:111)
      	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:723)
      	at org.eclipse.jetty.ee11.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1393)
      	at org.eclipse.jetty.ee11.servlet.ServletHolder.handle(ServletHolder.java:750)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1668)
      	at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:123)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.xwiki.wysiwyg.filter.ConversionFilter.doFilter(ConversionFilter.java:71)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:66)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      [561,266s][warning][gc,alloc] qtp278240974-372 - http://localhost:8080/xwiki/bin/download/Main/WebHome/2024-12-08-TPE_Y2A0908.JPG?width=48&rev=1.1: Retried waiting for GCLocker too often allocating 12000002 words
      2026-03-12 14:50:47,886 [qtp278240974-372 - http://localhost:8080/xwiki/bin/download/Main/WebHome/2024-12-08-TPE_Y2A0908.JPG?width=48&rev=1.1] WARN  c.x.x.w.XWikiAction            - Uncaught exception: Error number 0 in 11: Uncaught exception 
      com.xpn.xwiki.XWikiException: Error number 0 in 11: Uncaught exception
      	at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:662)
      	at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:339)
      	at com.xpn.xwiki.web.LegacyActionServlet.service(LegacyActionServlet.java:111)
      	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:723)
      	at org.eclipse.jetty.ee11.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1393)
      	at org.eclipse.jetty.ee11.servlet.ServletHolder.handle(ServletHolder.java:750)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1668)
      	at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:123)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.xwiki.wysiwyg.filter.ConversionFilter.doFilter(ConversionFilter.java:71)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:66)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:135)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:212)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.xwiki.container.servlet.filters.internal.SafeRedirectFilter.doFilter(SafeRedirectFilter.java:106)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.xwiki.container.servlet.filters.internal.ResolveRelativeRedirectFilter.doFilter(ResolveRelativeRedirectFilter.java:129)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.xwiki.container.servlet.filters.internal.SourceURLResolverFilter.doFilter(SourceURLResolverFilter.java:177)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:120)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:208)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.eclipse.jetty.ee11.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:199)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$MappedServlet.handle(ServletHandler.java:1602)
      	at org.eclipse.jetty.ee11.servlet.ServletChannel.dispatch(ServletChannel.java:868)
      	at org.eclipse.jetty.ee11.servlet.ServletChannel.handle(ServletChannel.java:449)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler.handle(ServletHandler.java:470)
      	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:546)
      	at org.eclipse.jetty.ee11.servlet.SessionHandler.handle(SessionHandler.java:763)
      	at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1224)
      	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:178)
      	at org.eclipse.jetty.server.Server.handle(Server.java:197)
      	at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:787)
      	at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:410)
      	at org.eclipse.jetty.server.internal.HttpConnection$FillableCallback.succeeded(HttpConnection.java:1805)
      	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
      	at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:54)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:1009)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1239)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1194)
      	at java.base/java.lang.Thread.run(Thread.java:1583)
      Caused by: java.lang.OutOfMemoryError: Java heap space
      	at java.desktop/java.awt.image.DataBufferInt.<init>(DataBufferInt.java:76)
      	at java.desktop/java.awt.image.Raster.createPackedRaster(Raster.java:538)
      	at java.desktop/java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1032)
      	at java.desktop/java.awt.image.BufferedImage.<init>(BufferedImage.java:333)
      	at net.coobird.thumbnailator.builders.BufferedImageBuilder.build(Unknown Source)
      	at net.coobird.thumbnailator.makers.ThumbnailMaker.makeThumbnail(Unknown Source)
      	at net.coobird.thumbnailator.makers.ScaledThumbnailMaker.make(Unknown Source)
      	at net.coobird.thumbnailator.Thumbnailator.createThumbnail(Unknown Source)
      	at net.coobird.thumbnailator.Thumbnails$Builder.asBufferedImage(Unknown Source)
      	at com.xpn.xwiki.internal.plugin.image.ThumbnailatorImageProcessor.readImage(ThumbnailatorImageProcessor.java:65)
      	at com.xpn.xwiki.plugin.image.ImagePlugin.shrinkImage(ImagePlugin.java:316)
      	at com.xpn.xwiki.plugin.image.ImagePlugin.downloadImageFromCache(ImagePlugin.java:290)
      	at com.xpn.xwiki.plugin.image.ImagePlugin.downloadImage(ImagePlugin.java:255)
      	at com.xpn.xwiki.plugin.image.ImagePlugin.downloadAttachment(ImagePlugin.java:221)
      	at com.xpn.xwiki.plugin.XWikiPluginManager.downloadAttachment(XWikiPluginManager.java:283)
      	at com.xpn.xwiki.web.DownloadAction.render(DownloadAction.java:157)
      	at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:637)
      	at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:339)
      	at com.xpn.xwiki.web.LegacyActionServlet.service(LegacyActionServlet.java:111)
      	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:723)
      	at org.eclipse.jetty.ee11.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1393)
      	at org.eclipse.jetty.ee11.servlet.ServletHolder.handle(ServletHolder.java:750)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1668)
      	at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:123)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.xwiki.wysiwyg.filter.ConversionFilter.doFilter(ConversionFilter.java:71)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      	at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:66)
      	at org.eclipse.jetty.ee11.servlet.FilterHolder.doFilter(FilterHolder.java:205)
      	at org.eclipse.jetty.ee11.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1640)
      
      

      Attachments

        Issue Links

          Activity

            People

              mleduc Manuel Leduc
              mleduc Manuel Leduc
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: