Details
-
Bug
-
Resolution: Fixed
-
Highest
-
7.0.0
-
7
-
Description
Summary
Deleting sub-tasks with Work logged in JIRA 7, causes JIRA to become unresponsive. The instance becomes unavailable due to HTTP threads being blocked. The instance becomes unusable.
The atlassian-jira.log report the following:
2015-11-27 11:21:41,439 http-nio-2975-exec-6 ERROR anonymous 681x4x2 gbwl0p 172.22.48.200 /s/3edd30ca725791e7aac11c253ce2b29f-CDN/en_AU-v00mv4/70107/b6b48b2829824b869586ac216d119363/3d193fefff8c3cf9821346e150766799/_/download/contextbatch/css/atl.dashboard,jira.dashboard,atl.general,atl.global,jira.global,jira.general,-_super/batch.css [o.a.c.c.C.[.[localhost].[/JSP-252975].[file-server]] Servlet.service() for servlet file-server threw exception java.lang.RuntimeException: org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe at com.atlassian.plugin.cache.filecache.impl.StreamsCache.streamFromFile(StreamsCache.java:140) at com.atlassian.plugin.cache.filecache.impl.OneStreamCache.stream(OneStreamCache.java:65) at com.atlassian.plugin.cache.filecache.impl.FileCacheImpl.cache(FileCacheImpl.java:100) at com.atlassian.plugin.webresource.http.Controller$1CachedContentImpl.cache(Controller.java:317) at com.atlassian.plugin.webresource.http.Controller$1CachedContentImpl.writeTo(Controller.java:272) at com.atlassian.plugin.webresource.http.Controller.sendCached(Controller.java:364) at com.atlassian.plugin.webresource.http.Controller.serveResources(Controller.java:179) at com.atlassian.plugin.webresource.http.Controller.serveBatch(Controller.java:78) at com.atlassian.plugin.webresource.http.Router$5.apply(Router.java:97) at com.atlassian.plugin.webresource.http.Router$5.apply(Router.java:89) at com.atlassian.plugin.webresource.support.http.BaseRouter.callHandler(BaseRouter.java:185) at com.atlassian.plugin.webresource.support.http.BaseRouter.dispatch(BaseRouter.java:161) at com.atlassian.plugin.webresource.servlet.PluginResourceDownload.serveFile(PluginResourceDownload.java:67) at com.atlassian.plugin.servlet.AbstractFileServerServlet.doGet(AbstractFileServerServlet.java:33) at javax.servlet.http.HttpServlet.service(HttpServlet.java:618) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) ... 111 filtered at com.atlassian.jira.plugin.webresource.CachingResourceDownloadRewriteRule$1.execute(CachingResourceDownloadRewriteRule.java:68) at org.tuckey.web.filters.urlrewrite.RewrittenUrlClass.doRewrite(RewrittenUrlClass.java:61) ... 60 filtered at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:393) at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:426) at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:339) at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:418) at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:406) at java.util.zip.DeflaterOutputStream.deflate(DeflaterOutputStream.java:253) at java.util.zip.DeflaterOutputStream.write(DeflaterOutputStream.java:211) at java.util.zip.GZIPOutputStream.write(GZIPOutputStream.java:145) at com.atlassian.gzipfilter.GzipResponseStream.write(GzipResponseStream.java:46) at com.atlassian.gzipfilter.RoutableServletOutputStream.write(RoutableServletOutputStream.java:134) at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1384) at com.atlassian.plugin.cache.filecache.impl.StreamsCache.streamFromFile(StreamsCache.java:135) ... 192 more Caused by: java.io.IOException: Broken pipe at sun.nio.ch.FileDispatcherImpl.write0(Native Method) at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93) at sun.nio.ch.IOUtil.write(IOUtil.java:65) at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:470) ... 10 filtered ... 204 more
Environment
JIRA 7.0.0
Steps to Reproduce
- Set up an Environment with JIRA 7.0.0 (bug is reproducible on Microsoft SQL Server 11.0.2100).
- Create an issue with a sub-task
- Create a Work log on that issue
- Delete the issue
- At this point the Delete fails to respond. the logs will indicate an error: java.lang.RuntimeException: org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe
- Observe that the instance becomes unresponsive and you are unable to access some functions of JIRA as more and more threads get blocked.
Expected Results
- When the issue is deleted, the instance should still be available to users.
- http threads should not become blocked.
- The removal of the targeted issue should occur.
Actual Results
- JIRA becomes unresponsive.
- Many threads become blocked, waiting on cache.
Verification
- Many threads will be WAITING similar to the following:
"http-nio-2975-exec-24" #126 daemon prio=5 tid=0x00007f4f18008000 nid=0x786e waiting on condition [0x00007f4f456dc000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x00000000fb514400> (a com.google.common.util.concurrent.AbstractFuture$Sync)
- Instance will be very unstable, not responding to requests. But some components may load OK, for example a dashboard
- Potentially all HTTP threads eventually get stuck waiting and the instance dies.
Workaround
- Remove the Delete issues permission from projects if you are using JIRA 7.0.X.
- If you must provide for deleting issues and are testing JIRA 7 in a pre-production environment, roll back to a previous version of JIRA.
Attachments
Issue Links
- blocked by
-
JDEV-35598 Loading...
- included in
-
CPU-209 JIRA 7.1.0-OD-04-012
- is caused by
-
ACJIRA-485 Loading...
-
ACJIRA-512 Loading...
(1 mentioned in)