Issue Summary
This is essentially an analogous feature request to JRASERVER-71248 : Provide a way to configure the frequency at which JQL autocomplete suggestions may submit search requests, where a new set of configuration parameters was implemented in order to limit both the frequency and number of characters typed before suggestions occur.
When attempting to set an Epic Link value to an existing issue, typing characters into the Epic Link field causes the browser to submit numerous search requests against the following endpoint:
- /rest/greenhopper/1.0/epics
If the value being searched on is particularly long and the user does not type quickly enough, an individual API call will be issued against Jira for every character typed, quickly consuming high CPU resources and many HTTP threads. In a busy or large instance, each request can take multiple seconds to return, eventually leading to performance degradation or outages.
Steps to Reproduce
- Create a Jira Software project
- Create a new Story
- Attempt to set an Epic Link by performing an Edit against the Story
Expected Results
Jira can suggest values as the user types without negatively impacting Jira
Actual Results
Using the browser's developer tools Network tool will show an individual API call being sent to Jira for every character typed, if typed more than ~300ms apart
Access Logs reflect the API volume:
"GET /rest/greenhopper/1.0/epics?searchQuery=&projectKey=PROJ&maxResults=100&hideDone=true&_=1644536123839 HTTP/1.1" "GET /rest/greenhopper/1.0/epics?searchQuery=s&projectKey=PROJ&maxResults=100&hideDone=true&_=1644536123840 HTTP/1.1" "GET /rest/greenhopper/1.0/epics?searchQuery=so&projectKey=PROJ&maxResults=100&hideDone=true&_=1644536123841 HTTP/1.1" "GET /rest/greenhopper/1.0/epics?searchQuery=som&projectKey=PROJ&maxResults=100&hideDone=true&_=1644536123842 HTTP/1.1" "GET /rest/greenhopper/1.0/epics?searchQuery=some&projectKey=PROJ&maxResults=100&hideDone=true&_=1644536123843 HTTP/1.1" "GET /rest/greenhopper/1.0/epics?searchQuery=some&projectKey=PROJ&maxResults=100&hideDone=true&_=1644536123844 HTTP/1.1" "GET /rest/greenhopper/1.0/epics?searchQuery=some+e&projectKey=PROJ&maxResults=100&hideDone=true&_=1644536123845 HTTP/1.1" "GET /rest/greenhopper/1.0/epics?searchQuery=some+ep&projectKey=PROJ&maxResults=100&hideDone=true&_=1644536123846 HTTP/1.1" "GET /rest/greenhopper/1.0/epics?searchQuery=some+epi&projectKey=PROJ&maxResults=100&hideDone=true&_=1644536123847 HTTP/1.1" "GET /rest/greenhopper/1.0/epics?searchQuery=some+epic&projectKey=PROJ&maxResults=100&hideDone=true&_=1644536123848 HTTP/1.1"
Workaround
- Characters should be typed quickly in order to avoid unnecessary API calls
- Searches can be copied and pasted directly into the Epic Link if known
- is related to
-
JRASERVER-71248 Provide a way to configure the frequency at which JQL autocomplete suggestions may submit search requests.
- Closed
- relates to
-
JSWSERVER-20452 Epic Link query causes timeouts
- Closed
-
JSWSERVER-21026 Epic link dropdown slow in large instances
- Closed