-
Bug
-
Resolution: Unresolved
-
Low
-
None
-
9.4.3, 9.4.4, 9.7.0
-
None
-
9.04
-
6
-
Severity 3 - Minor
-
1
-
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
- Spin up a Jira installation
- Add any MP4 file with more than 1.5MB to an issue
- 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.
- mentioned in
-
Page Loading...