Uploaded image for project: 'Jira Software Data Center'
  1. Jira Software Data Center
  2. JSWSERVER-21659

"No video with supported format and MIME type found" error in Firefox when trying to preview MP4

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Low Low
    • None
    • 9.4.3, 9.4.4, 9.7.0
    • Issue - Comments
    • None

      Problem

      When trying to preview an MP4 file with more than 1.5MB in Jira using the Firefox browser, the video won't play and the "No video with supported format and MIME type found" error is presented.

      Environment

      • Tested with Jira 9.4.3, 9.4.4, and 9.7.0.
      • Firefox browser version 111.0

      Steps to Reproduce

      1. Spin up a Jira installation
      2. Add any MP4 file with more than 1.5MB to an issue
      3. Try to open the attachment in Firefox

      Expected Results

      The video is played with no problems.

      Actual Results

      The "No video with supported format and MIME type found" error is presented in the browser.

      Looking at the HAR file, we see that ~1.5MB is downloaded:

      But then, a new ASESSIONID and JSESSIONID are created, and redirected to {{login.jsp?permissionViolation=true&os_destination=%2Fsecure%2Fattachment%2F10200%2FSampleVideo_360x240_5mb
      .mp4&page_caps=&user_role=}}:

      In the Jira Application logs, we can see the following error:

      2023-03-28 10:33:38,073-0300 Caesium-1-1 INFO ServiceRunner     [c.a.jira.servlet.ApplicationStateResolverImpl] Checking index consistency. Time taken: 1.053 ms
      2023-03-28 10:33:53,481-0300 http-nio-8943-exec-1 ERROR master 633x1059x1 1dty5so 127.0.0.1 /secure/attachment/10200/SampleVideo_360x240_5mb.mp4 [c.a.j.w.servlet.viewfile.AbstractViewFileServlet] Error serving file for path /10200/SampleVideo_360x240_5mb.mp4: com.atlassian.jira.exception.DataAccessException: org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe
      com.atlassian.jira.issue.attachment.AttachmentReadException: com.atlassian.jira.exception.DataAccessException: org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe
      	at com.atlassian.jira.issue.attachment.store.DefaultFileSystemAttachmentStore$3.call(DefaultFileSystemAttachmentStore.java:152)
      	at io.atlassian.util.concurrent.Executors$DefaultSubmitter$CallableRunner.run(Executors.java:85)
      	at io.atlassian.util.concurrent.LimitedExecutor$Runner.run(LimitedExecutor.java:94)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
      	at java.base/java.lang.Thread.run(Thread.java:829)
      Caused by: com.atlassian.jira.exception.DataAccessException: org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe
      	at com.atlassian.jira.issue.managers.DefaultAttachmentManager$7.apply(DefaultAttachmentManager.java:733)
      	at com.atlassian.jira.issue.managers.DefaultAttachmentManager$7.apply(DefaultAttachmentManager.java:727)
      	at com.atlassian.jira.issue.attachment.store.DefaultFileSystemAttachmentStore$2.apply(DefaultFileSystemAttachmentStore.java:127)
      	at com.atlassian.jira.issue.attachment.store.DefaultFileSystemAttachmentStore$2.apply(DefaultFileSystemAttachmentStore.java:124)
      	at com.atlassian.jira.issue.attachment.store.DefaultFileSystemAttachmentStore$3.call(DefaultFileSystemAttachmentStore.java:150)
      Caused by: org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe
      	at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:353)
      	at org.apache.catalina.connector.OutputBuffer.flushByteBuffer(OutputBuffer.java:784)
      	at org.apache.catalina.connector.OutputBuffer.append(OutputBuffer.java:689)
      	at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:388)
      	at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:366)
      	at com.atlassian.gzipfilter.RoutableServletOutputStream.write(RoutableServletOutputStream.java:134)
      	at com.atlassian.jira.util.http.response.ObservantResponseWrapper$SizeObservingServletOutputStream.write(ObservantResponseWrapper.java:158)
      	at com.atlassian.jira.util.http.response.CapturingResponseWrapper$CapturingServletOutputStream.write(CapturingResponseWrapper.java:329)
      	at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1159)
      	at org.apache.commons.io.IOUtils.copy(IOUtils.java:878)
      	at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1135)
      	at org.apache.commons.io.IOUtils.copy(IOUtils.java:854)
      	at com.atlassian.jira.web.servlet.viewfile.AbstractViewFileServlet.copyAll(AbstractViewFileServlet.java:263)
      	at com.atlassian.jira.web.servlet.viewfile.AbstractViewFileServlet.copyStream(AbstractViewFileServlet.java:187)
      	at com.atlassian.jira.web.servlet.viewfile.AbstractViewFileServlet.lambda$streamFileData$2(AbstractViewFileServlet.java:149)
      	at com.atlassian.jira.issue.managers.DefaultAttachmentManager$7.apply(DefaultAttachmentManager.java:731)
      	... 9 more
      Caused by: java.io.IOException: Broken pipe
      	at java.base/sun.nio.ch.FileDispatcherImpl.write0(Native Method)
      	at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
      	at java.base/sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:113)
      	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:79)
      	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:50)
      	... 10 filtered
      	... 25 more
      2023-03-28 10:33:53,488-0300 http-nio-8943-exec-1 ERROR      [o.a.c.c.C.[.[localhost].[/j943].[viewattachment]] Servlet.service() for servlet [viewattachment] in context with path [/j943] threw exception [com.atlassian.jira.issue.attachment.AttachmentReadException: com.atlassian.jira.exception.DataAccessException: org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe] with root cause
      java.io.IOException: Broken pipe
      	at java.base/sun.nio.ch.FileDispatcherImpl.write0(Native Method)
      	at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
      	at java.base/sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:113)
      	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:79)
      	at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:50)
      	at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:462)
      	... 15 filtered
      	at com.atlassian.gzipfilter.RoutableServletOutputStream.write(RoutableServletOutputStream.java:134)
      	at com.atlassian.jira.util.http.response.ObservantResponseWrapper$SizeObservingServletOutputStream.write(ObservantResponseWrapper.java:158)
      	at com.atlassian.jira.util.http.response.CapturingResponseWrapper$CapturingServletOutputStream.write(CapturingResponseWrapper.java:329)
      	at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1159)
      	at org.apache.commons.io.IOUtils.copy(IOUtils.java:878)
      	at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1135)
      	at org.apache.commons.io.IOUtils.copy(IOUtils.java:854)
      	at com.atlassian.jira.web.servlet.viewfile.AbstractViewFileServlet.copyAll(AbstractViewFileServlet.java:263)
      	at com.atlassian.jira.web.servlet.viewfile.AbstractViewFileServlet.copyStream(AbstractViewFileServlet.java:187)
      	at com.atlassian.jira.web.servlet.viewfile.AbstractViewFileServlet.lambda$streamFileData$2(AbstractViewFileServlet.java:149)
      	at com.atlassian.jira.issue.managers.DefaultAttachmentManager$7.apply(DefaultAttachmentManager.java:731)
      	at com.atlassian.jira.issue.managers.DefaultAttachmentManager$7.apply(DefaultAttachmentManager.java:727)
      	at com.atlassian.jira.issue.attachment.store.DefaultFileSystemAttachmentStore$2.apply(DefaultFileSystemAttachmentStore.java:127)
      	at com.atlassian.jira.issue.attachment.store.DefaultFileSystemAttachmentStore$2.apply(DefaultFileSystemAttachmentStore.java:124)
      	at com.atlassian.jira.issue.attachment.store.DefaultFileSystemAttachmentStore$3.call(DefaultFileSystemAttachmentStore.java:150)
      	at io.atlassian.util.concurrent.Executors$DefaultSubmitter$CallableRunner.run(Executors.java:85)
      	at io.atlassian.util.concurrent.LimitedExecutor$Runner.run(LimitedExecutor.java:94)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
      	at java.base/java.lang.Thread.run(Thread.java:829)
      

      Workaround

      Workaround 1

      Add a Site-Wide Dark Feature called jira.security.csp.sandbox.disabled. This will disable setting header Content-Security-Policy to sandbox for attachments and other assets.

      Workaround 2

      Changing Firefox's cookie tracking protection from "Cross-site tracking cookies, and isolate other cross-site cookies" to "Cross-site tracking cookies".

      Notes

      This seems a similar issue to what was fixed in JRASERVER-72275 for Chrome and Safari.

        1. screenshot-3.png
          screenshot-3.png
          116 kB
        2. screenshot-2.png
          screenshot-2.png
          137 kB
        3. screenshot-1.png
          screenshot-1.png
          32 kB
        4. SampleVideo_5mb.mp4
          5.01 MB
        5. Load_MP4_5mb.txt
          0.5 kB
        6. Load_MP4_5mb.har
          1.40 MB
        7. Load_MP4_5mb_after_enable_DF.har
          2.74 MB
        8. Load_MP4_2mb.txt
          0.1 kB
        9. Load_MP4_2mb.har
          1.34 MB
        10. Load_issue.txt
          25 kB
        11. Load_Issue.har
          10.51 MB
        12. file_example_2mb.mp4
          1.50 MB

              Unassigned Unassigned
              489dcb58d5d9 Edson Araujo
              Votes:
              8 Vote for this issue
              Watchers:
              11 Start watching this issue

                Created:
                Updated: