Fix MR discussion not loaded issue
What does this MR do?
Some MR discussions aren't being loaded, because its json endpoint return 500.
The error was caused by json generation causing IOError: not opened for reading.
One possible cause might be that the Position object could trigger a as_json call to its diff_file instance variable,
which in turn triggers as_json on repository, which is not serializable and causes the IOError.
Error report: https://sentry.gitlab.net/gitlab/gitlabcom/issues/515862/
Currently the position hash contains a formatter hash.
This MR removes the nesting, so position hash will have what the
formatter hash contains. This removes the unneeded diff_file, and thus avoids the error all together.
Current:
{
"position": {
"formatter": {
"base_sha":"xxx",
"start_sha":"xxx",
"head_sha":"xxx",
"old_path":".jscsrc",
"new_path":".jscsrc",
"position_type":"text",
"old_line":null,
"new_line":1
}
}
}
After this MR
{
"position": {
"base_sha":"xxx",
"start_sha":"xxx",
"head_sha":"xxx",
"old_path":".jscsrc",
"new_path":".jscsrc",
"position_type":"text",
"old_line":null,
"new_line":1
}
}
What are the relevant issue numbers?
Does this MR meet the acceptance criteria?
-
Changelog entry added, if necessary -
Documentation created/updated -
Tests added for this feature/bug -
Conforms to the code review guidelines -
Conforms to the merge request performance guidelines -
Conforms to the style guides -
Conforms to the database guides
Closes #51958 (closed)
Edited by Mark Chao