-
Bug
-
Resolution: Fixed
-
Low
-
5.0, 6.4.14, 7.1.10, 7.2.5
-
5
-
5
-
Severity 2 - Major
-
41
-
PUT /rest/api/2/issue/{issueIdOrKey} method is loading all possible fields ids with all values into memory.
In particular this endpoint loads all possible versions for each version field creating thousands of VersionBean.
This data is completely not needed in this resource.
Effects
- Loading all this data consumes a lot of memory for 64k versions this is taking up to 100MB of RAM.
- Creating REST beans for all those values is slow and as an effect editing issues trough REST is slow.
This bug is essentially in IssueInputParametersAssembler class in
private Set<String> getValidFieldsForEdit(Issue issue) { EditMetaFieldBeanBuilder builder = new EditMetaFieldBeanBuilder(fieldLayoutManager, issue.getProjectObject(), issue, issue.getIssueType(), jiraAuthenticationContext.getLoggedInUser(), versionBeanFactory, velocityRequestContextFactory, contextUriInfo, baseUrls, fieldScreenRendererFactory, fieldManager, issueManager); Set<String> strings = new HashSet<>(); strings.add(IssueFieldConstants.COMMENT); strings.addAll(builder.build().keySet()); return strings; }
We get only keys from EditMetaFieldBeanBuilder
builder.build().keySet()
We should instead add method
builder.buildKeys()
WORKAROUND
Remove the field that has many values from appropriate screen.
- is related to
-
JRASERVER-42282 On large instances the createmeta REST endpoint can take a very long amount of time to return results or cause JIRA to OOM
- Closed
- relates to
-
JRASERVER-44588 Multi Select/ Cascading Select List Custom Field loads options in a suboptimal way
- Closed
- cloned by
-
JCE-883 Loading...
- was cloned as
-
JSEV-1293 Loading...