BigW Consortium Gitlab
A user viewing the TODOs page will see a 404 if there are mentioned labels in multiple different projects. This is likely a caching bug and only occurs when Markdown rendering occurs across multiple projects, which is why it's so tricky to reproduce. This is what I think is happening: 1. LabelReferenceFilter#references_in encounters label ~X for ProjectA and finds the label in the DB as id = 1. 2. LabelReferenceFilter.references_in yields [1, 'X', nil, ...] 3. Since project_ref is nil, AbstractReferenceFilter#project_from_ref_cache caches nil => ProjectA. 4. LabelReferenceFilter#references_in encounters label ~Y for ProjectB and finds the label in the DB as id = 2. 5. LabelReferenceFilter.references_in yields [2, 'Y', nil, ...] 6. AbstractReferenceFilter#project_from_ref_cache lookups nil and returns ProjectA. It was supposed to be ProjectB. 7. A is the wrong project, so the label lookup fails. This MR caches Markdown references if the key is present. Closes #17898
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
abstract_reference_filter.rb | Loading commit data... | |
autolink_filter.rb | Loading commit data... | |
commit_range_reference_filter.rb | Loading commit data... | |
commit_reference_filter.rb | Loading commit data... | |
emoji_filter.rb | Loading commit data... | |
external_issue_reference_filter.rb | Loading commit data... | |
external_link_filter.rb | Loading commit data... | |
gollum_tags_filter.rb | Loading commit data... | |
image_link_filter.rb | Loading commit data... | |
inline_diff_filter.rb | Loading commit data... | |
issue_reference_filter.rb | Loading commit data... | |
label_reference_filter.rb | Loading commit data... | |
markdown_filter.rb | Loading commit data... | |
merge_request_reference_filter.rb | Loading commit data... | |
milestone_reference_filter.rb | Loading commit data... | |
redactor_filter.rb | Loading commit data... | |
reference_filter.rb | Loading commit data... | |
reference_gatherer_filter.rb | Loading commit data... | |
relative_link_filter.rb | Loading commit data... | |
sanitization_filter.rb | Loading commit data... | |
snippet_reference_filter.rb | Loading commit data... | |
syntax_highlight_filter.rb | Loading commit data... | |
table_of_contents_filter.rb | Loading commit data... | |
task_list_filter.rb | Loading commit data... | |
upload_link_filter.rb | Loading commit data... | |
user_reference_filter.rb | Loading commit data... | |
wiki_link_filter.rb | Loading commit data... | |
yaml_front_matter_filter.rb | Loading commit data... |