Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Excerpt

This page is for anyone who has been tempted to add files (e.g. js, css) into JIRA's atlassian-jira/ directory. It may come as a surprise, but JIRA suffers from the most basic of bugs: it doesn't serve static files correctly. More specifically, if Tomcat serves the file with gzip compression, the Content-Length: header is incorrectly set.


Note

This is now filed as a JIRA bug, 

Jira
serverAtlassian JIRA
serverId144880e9-a353-312f-9412-ed028e8166fa
keyJRASERVER-66932

 


Let's pick on jira.jboss.org for our demo, but you can use any public, non-Cloud JIRA instance fronted by Apache (not nginx, which seems to mask the problem). Try hitting https://jira.jboss.org/robots.txt. This loads, but hangs for 20 seconds.

If you are using Chrome, now view the cached response by viewing chrome://view-http-cache/https://jira.jboss.org/robots.txt:


Note

edit sadly, Chrome no longer supports chrome://cache and chrome://view-http-cache.


The RESPONSE_INFO_TRUNCATED status indicates that the server stopped responding before the full Content-Length number of bytes was received.

...

Code Block
jturner@jturner-desktop:~$ time curl -sS 'https://jira.jboss.org/static/util/urls.js' --compressed -o /dev/null
curl: (18) transfer closed with 263 bytes remaining to read
real	0m22.109s
user	0m0.027s
sys	0m0.004s

...


Consequences of the bug

Naturally, any JIRA page that refers to a static file will be affected. The page will load, but then hang for 20 seconds or so as the browser waits for the last resource to load, before giving up.

...

  • Now you know why JIRA's 404 page always seems slow. I would file a bug, but Atlassian no longer accept bug reports on https://jira.atlassian.com, filed as bug 
    Jira
    serverAtlassian JIRA
    serverId144880e9-a353-312f-9412-ed028e8166fa
    keyJRASERVER-66932
     indirectly via support request 
  • If you want to add custom Javascript, CSS or other non-image files to atlassian-jira, you can't rely on Tomcat to serve them. Better to serve the static files directly via your frontend webserver.

...