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 |
---|---|---|
.. | ||
api | Loading commit data... | |
assets | Loading commit data... | |
backup | Loading commit data... | |
banzai | Loading commit data... | |
ci | Loading commit data... | |
container_registry | Loading commit data... | |
gitlab | Loading commit data... | |
json_web_token | Loading commit data... | |
omni_auth | Loading commit data... | |
rouge/formatters | Loading commit data... | |
support | Loading commit data... | |
tasks | Loading commit data... | |
award_emoji.rb | Loading commit data... | |
banzai.rb | Loading commit data... | |
disable_email_interceptor.rb | Loading commit data... | |
event_filter.rb | Loading commit data... | |
extracts_path.rb | Loading commit data... | |
file_size_validator.rb | Loading commit data... | |
file_streamer.rb | Loading commit data... | |
gitlab.rb | Loading commit data... | |
gt_one_coercion.rb | Loading commit data... | |
repository_cache.rb | Loading commit data... | |
static_model.rb | Loading commit data... | |
unfold_form.rb | Loading commit data... | |
uploaded_file.rb | Loading commit data... | |
version_check.rb | Loading commit data... |