Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-41595

Image processing related exceptions thrown by thumbnail code

    XMLWordPrintable

Details

    Description

      We're noticing quite a few image processing related exceptions in our blobstore analytics events, which report when provided attachment processing functions throw exceptions.

      The stack trace for one:

      javax.imageio.IIOException: Unsupported Image Type
      at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(JPEGImageReader.java:977)
      at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(JPEGImageReader.java:948)
      at com.atlassian.jira.issue.thumbnail.StreamingImageRenderer.scaleDown(StreamingImageRenderer.java:53)
      at com.atlassian.jira.issue.thumbnail.StreamingImageRenderer.renderThumbnail(StreamingImageRenderer.java:28)
      at com.atlassian.jira.issue.thumbnail.DefaultThumbnailManager$6.withInputStream(DefaultThumbnailManager.java:492)
      at com.atlassian.jira.issue.thumbnail.DefaultThumbnailManager$6.withInputStream(DefaultThumbnailManager.java:488)
      at com.atlassian.jira.issue.managers.DefaultAttachmentManager$6.get(DefaultAttachmentManager.java:725)
      at com.atlassian.jira.issue.managers.DefaultAttachmentManager$6.get(DefaultAttachmentManager.java:719)
      at com.atlassian.util.concurrent.Functions$ToGoogleAdapter.apply(Functions.java:131)
      at com.google.common.base.Functions$FunctionComposition.apply(Functions.java:205)
      at com.atlassian.fugue.Option.map(Option.java:281)\n\tat com.atlassian.fugue.Options$1.apply(Options.java:113)
      at com.atlassian.fugue.Options$1.apply(Options.java:111)
      at io.atlassian.blobstore.plugin.analytics.EventPublishingBlobStoreService$3.apply(EventPublishingBlobStoreService.java:80)
      at io.atlassian.blobstore.plugin.analytics.EventPublishingBlobStoreService$3.apply(EventPublishingBlobStoreService.java:78)
      at io.atlassian.blobstore.client.impl.RemoteBlobStoreImpl$1$2$1.get(RemoteBlobStoreImpl.java:126)
      at io.atlassian.blobstore.client.impl.Throws$1.call(Throws.java:30)
      at io.atlassian.blobstore.client.impl.Throws.nonFatal(Throws.java:46)
      at io.atlassian.blobstore.client.impl.Throws.nonFatal(Throws.java:28)
      at io.atlassian.blobstore.client.impl.Result.catching(Result.java:36)
      at io.atlassian.blobstore.client.impl.Result.catching(Result.java:52)
      at io.atlassian.blobstore.client.impl.RemoteBlobStoreImpl$1$2.apply(RemoteBlobStoreImpl.java:123)
      at io.atlassian.blobstore.client.impl.RemoteBlobStoreImpl$1$2.apply(RemoteBlobStoreImpl.java:120)
      at com.atlassian.fugue.Either$RightProjection.flatMap(Either.java:485)
      at io.atlassian.blobstore.client.impl.RemoteBlobStoreImpl$1.get(RemoteBlobStoreImpl.java:119)
      at io.atlassian.blobstore.client.impl.RemoteBlobStoreImpl$1.get(RemoteBlobStoreImpl.java:103)
      at com.atlassian.fugue.retry.RetrySupplier.get(RetrySupplier.java:93)
      at io.atlassian.blobstore.client.impl.RemoteBlobStoreImpl$6.get(RemoteBlobStoreImpl.java:293)
      at io.atlassian.blobstore.client.impl.RemoteBlobStoreImpl$6.get(RemoteBlobStoreImpl.java:290)
      at com.atlassian.util.concurrent.Suppliers$FromGoogleAdapter.get(Suppliers.java:100)
      at com.atlassian.util.concurrent.Suppliers$CallableAdapter.call(Suppliers.java:119)
      at com.atlassian.util.concurrent.Executors$DefaultSubmitter$CallableRunner.run(Executors.java:62)
      at com.atlassian.util.concurrent.LimitedExecutor$Runner.run(LimitedExecutor.java:93)
      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)
      

      We're also seeing these other exceptions that have the DefaultThumbnailManager in the stacktrace somewhere:

      • javax.imageio.IIOException: Unsupported Image Type
      • javax.imageio.IIOException: New BMP version not implemented yet.
      • javax.imageio.IIOException: Failed to read a chunk of type 1933723988
      • javax.imageio.IIOException: Invalid icc profile: duplicate sequence numbers
      • java.lang.IllegalArgumentException: Numbers of source Raster bands and source color space components do not match

      For more details, feel free to ping us in the BlobStore room. These are just creating noise in our analytics, and presumably not impacting the app itself. Ideally these exceptions shouldn't be thrown but passed back as a failure return type.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              bmccoy bmccoy
              Votes:
              1 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: