503 Error: ajp_read_header: ajp_ilink_receive failed

Borja Aparicio Cotarelo February 8, 2015

Hello everybody and thanks in advance!

We are experiencing issues in our JIRA installations.
The final result is a 503 Internal Server Error visible for the users in the web browser that hapends in regular basis. A reload of the page use to work bringing back the application.
In the apache error log, each of those 503 errors print the following lines:
[error] ajp_read_header: ajp_ilink_receive failed
[error] (120006)APR does not understand this error code: proxy: dialog to [::1]:8010 (localhost) failed
And also:
[error] (32)Broken pipe: ajp_ilink_send(): send failed
[error] (70014)End of file found: ajp_ilink_receive() can't receive header

This is some information about our environment:

  • OS Scientific Linux 6.6
  • jira v6.3.8 and v6.1.7 (problem happening with both versions so far)
  • java version "1.7.0_72"
  • Apache 2.2:
    <IfModule prefork.c>
    StartServers 8
    MinSpareServers 5
    MaxSpareServers 20
    ServerLimit 256
    MaxClients 256
    MaxRequestsPerChild 4000
    </IfModule>
    ......
    ......
    ProxyPass /jira ajp://localhost:8010/jira
    ProxyPassReverse /jira ajp://localhost:8010/jira
    ......
    ......
  • Tomcat Apache Tomcat/6.0.24
    ......
    ......
    <Connector URIEncoding="UTF-8"
    port="8010"
    tomcatAuthentication="false"

protocol="AJP/1.3"
connectionTimeout="20000"
redirectPort="8443" />
......
......

 

Is anybody experiencing the same? I've tried to align the number of threads in tomcat and the maxClients of apache with no success.

Thanks a lot for your help,

Borja Aparicio

3 answers

1 accepted

3 votes
Answer accepted
Jason Hensler
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
February 9, 2015

A few things come to mind that you could try:

Tomcat Max thread count should be higher than the expected number of max client in httpd. The tomcat threads may not clean up as quickly as the httpd threads and you may need more than one tomcat thread per httpd thread. Also, set a minimum spare thread count so, there is a thread ready to handle the next request from apache.

Change your "localhost" references to 127.0.0.1, I have had issues with this, mostly on windows boxes, where setting it to the local ip address just work better.

Use mod_jk instead of mod_proxy_ajp or use mod_proxy_http and http listener on the tomcat. I personally recommend mod_jk. It is a bit more complex to setup compared to mod_proxy_ajp but, if you look at the examples and read the manual on the tomcat website it is not difficult at all. Mod_jk also has connection pooling between apache and tomcat which should give you a performance boost.

Update tomcat, JIRA 6.1.7 ships with tomcat 7, I can't see a reason to stay on tomcat 6 with jira.

0 votes
Jacek Tyborowski September 28, 2020

From JIRA version 8 you need to add:

secretRequired="false"

into the AJP connector. Something like this:

<Connector port="8009" URIEncoding="UTF-8" enableLookups="false" protocol="AJP/1.3" secretRequired="false"/>

And restart Jira.

Maximiliano Gadea November 5, 2020

Your solution works perfectly, also in Confluence. Thanks

Like vhartgraves likes this
0 votes
Borja Aparicio Cotarelo February 19, 2015

Hi Jason,

Thanks for your reply and help.

Finally we've implemented mod_jk and looks like the issue is gone.

Best regards,

Borja Aparicio

Suggest an answer

Log in or Sign up to answer