Our JIRA 7 crashes every 2 weeks(or I should say Tomcat), we usually have about 250-300 concurrent users during week days. I increased maxThreads from default 150 to 300 few weeks ago, and it crashed after 2 weeks, I could see from Windows resource monitor, right before it crashed, there were 608 threads running on tomcat8.exe process, 30 mins before it crashed, I also received users report that they couldn't upload attachment into JIRA. So now I increased the number from 300 to 600 on our APR connector, and for AJP connetor, i keep it maxThreads at 200.
I can see from Windows resource monitor for the past few days, threads are increasing regularly everyday from 150 threads to 260 now. I think eventually it will hit 600 threads ceiling if threads can't be terminated properly.
One more thing, there are messages similar to below been logged few times a day,
INFO [file-attachment-store:thread-963] org.apache.coyote.AbstractProcessor.setErrorState An error occurred in processing while on a non-container thread. The connection will be closed immediately java.io.IOException: APR error: -70014 at org.apache.coyote.http11.InternalAprOutputBuffer.writeToSocket(InternalAprOutputBuffer.java:292) at org.apache.coyote.http11.InternalAprOutputBuffer.writeToSocket(InternalAprOutputBuffer.java:245) at org.apache.coyote.http11.InternalAprOutputBuffer.flushBuffer(InternalAprOutputBuffer.java:214) at org.apache.coyote.http11.AbstractOutputBuffer.endRequest(AbstractOutputBuffer.java:378) at org.apache.coyote.http11.AbstractHttp11Processor.action(AbstractHttp11Processor.java:725) at org.apache.coyote.Response.action(Response.java:179) at org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:306) at org.apache.catalina.connector.CoyoteOutputStream.close(CoyoteOutputStream.java:151) at org.apache.commons.io.IOUtils.closeQuietly(IOUtils.java:281) at org.apache.commons.io.IOUtils.closeQuietly(IOUtils.java:252) at com.atlassian.jira.web.servlet.AbstractViewFileServlet$1.withInputStream(AbstractViewFileServlet.java:89) at com.atlassian.jira.web.servlet.AbstractViewFileServlet$1.withInputStream(AbstractViewFileServlet.java:79) at com.atlassian.jira.issue.managers.DefaultAttachmentManager$7.get(DefaultAttachmentManager.java:729) at com.atlassian.jira.issue.managers.DefaultAttachmentManager$7.get(DefaultAttachmentManager.java:725) at com.atlassian.jira.issue.attachment.store.DefaultFileSystemAttachmentStore$2.get(DefaultFileSystemAttachmentStore.java:128) at com.atlassian.jira.issue.attachment.store.DefaultFileSystemAttachmentStore$2.get(DefaultFileSystemAttachmentStore.java:125) at com.atlassian.jira.issue.attachment.store.DefaultFileSystemAttachmentStore$3.call(DefaultFileSystemAttachmentStore.java:151) 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.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
Please take a look at my tomcat configuration, I'd appreciate for any recommendation. Thanks,
<Connector port="443" maxHttpHeaderSize="8192"
acceptCount="100" scheme="https" secure="true"
<Connector port="8009" redirectPort="443" URIEncoding="UTF-8" enableLookups="false" protocol="AJP/1.3" maxThreads="200" connectionTimeout="600000" />
Try to implement like this. it will help you.
Better to keep backup twice in a day which is helpful for you.
Connect with like-minded Atlassian users at free events near you!Find a group
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no AUG chapters near you at the moment.Start an AUG