Affects Version/s: 3.6.5, 3.7.1
Fix Version/s: None
Ensure that the language packs fr and fr_ca are installed on the site.
Set langlist to "en,fr_ca".
Enable the multilang filter.
Navigate to any page containing multilang content, but missing strings for fr_ca.
Switch preferred user language to fr_ca.
Confirm the page loads.
Affected Branches:MOODLE_36_STABLE, MOODLE_37_STABLE
Multilang filter is causing infinite loops when the parent of a language pack is not listed in the "langlist" setting.
The loop is triggered by
MDL-55197 calling get_parent_lang().
When trying to switch the user language to "fr_ca", the site will end up in an infinite loop if "fr", the parent of "fr_ca" is not listed in langlist.
As a workaround, adding "fr" to langlist makes the site behave normally.
The bug is caused by moodlelib.php function get_parent_language() trying to hack around the current language, but failing to switch to "fr" since "fr" is not in langlist.
We have found the solution proposed in
MDL-66197 to fix this bug, so perhaps it should be applied from version 3.6 upwards.