Removing Issue from Running Sprint in the Rapid Board results in Bad Request
症状
In Rapid Board, trying to remove an issue from the running sprint results into "Bad Request"
atlassian-jira.log
に次のエラーが返される。
2012-07-20 12:20:54,732 TP-Processor34 ERROR [500ErrorPage.jsp] Exception caught in 500 page null
java.lang.NullPointerException
at java.io.File.<init>(Unknown Source)
at com.atlassian.jira.util.log.LogMarker.rolloverAsAppropropriate(LogMarker.java:80)
at com.atlassian.jira.util.log.LogMarker.rollover(LogMarker.java:73)
at com.atlassian.jira.util.log.LogMarker.rolloverAndMark(LogMarker.java:51)
at com.atlassian.jira.web.action.admin.ViewLogging.doMarkLogs(ViewLogging.java:145)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
...
Diagnosis (tested in JIRA 5.0.6 and JIRA Agile 5.10.4 and 5.10.5)
- Adding issues to a running Sprint works.
- Removing an issue from a running Sprint results in "Error: Bad Request"
- You are using the Apache jakarta connector (mod_jk) to connect to JIRA.
Even though the above error is where you usually concentrate at first sight, in atlassian-jira.log you should also find:
2012-07-19 14:11:26,446 TP-Processor21 ERROR [500ErrorPage.jsp] Exception caught in 500 page null
java.io.IOException
at org.apache.jk.common.JkInputStream.receive(JkInputStream.java:205)
at org.apache.jk.common.JkInputStream.refillReadBuffer(JkInputStream.java:265)
at org.apache.jk.common.JkInputStream.doRead(JkInputStream.java:183)
at org.apache.coyote.Request.doRead(Request.java:428)
at org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:304)
at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:403)
- Try to access JIRA Tomcat directly and then through mod_jk. Do you see different behaviors?
注意
Integrating JIRA with mod_jk is not recommended by Atlassian regarding Apache 2.2.x
Users running JIRA behind Apache 2.2.x should opt for mod_proxy_ajp instead, as described here: Configuring Apache Reverse Proxy Using the AJP Protocol
原因
You are using localhost to refer to your server.
ソリューション
Avoid using localhost to access your server in your mod_jk mapping. Use your server's ip or hostname instead, as defined in Configuring Apache Reverse Proxy Using the AJP Protocol
So your mod_jk workers.properties file should look like (replace JIRA_HOST_NAME with your server's name):
worker.jira_worker.host=JIRA_HOST_NAME
worker.jira_worker.port=AJP_CONNECTOR_PORT (usually 8009)
worker.jira_worker.type=ajp13
If you cannot locate the above file, check in your web server's configuration file (httpd.conf for Apache):
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
The JkWorkersFile directive should tell you where your file is located.
In most cases, the above solution can be applied. However, if you cannot locate the above files feel free to contact Atlassian Support after checking with your server's administrator.