Problem/Motivation

\Drupal\locale\LocaleConfigManager::getTranslatableDefaultConfig() reads shipped configuration from any module (or theme) that it finds on the filesystem. This includes uninstalled modules.

As it is being called from \Drupal\locale\LocaleConfigManager::updateConfigTranslations(), which is called when installing modules or themes, this can result in existing configuration translations being deleted from the system incorectly. That is loss of user data, which is why this is marked as critical.

Proposed resolution

Remaining tasks

User interface changes

API changes

Data model changes

Comments

tstoeckler created an issue. See original summary.

tstoeckler’s picture

Issue summary: View changes
tstoeckler’s picture

Issue summary: View changes
alexpott’s picture

Status: Active » Needs review
StatusFileSize
new1.08 KB

Let's see what breaks.

tstoeckler’s picture

LOL, InstallStorage has this gem:

 * This special implementation MUST NOT be used anywhere else than the early
 * installer environment.
dawehner’s picture

Status: Needs review » Needs work
Issue tags: +Needs tests

.

alexpott’s picture

Status: Needs work » Needs review
Issue tags: -Needs tests
StatusFileSize
new1.25 KB
new2.33 KB

The test only patch is also the interdiff.

The last submitted patch, 8: 2625216.8.test-only.patch, failed testing.

tstoeckler’s picture

Status: Needs review » Reviewed & tested by the community

Nice test!

Generally I rarely feel eligible to RTBC something that touches LocaleConfigManager but here both the fix and the test are very very precise and clear and the tests-only patch fails correctly.

Thanks!

The last submitted patch, 8: 2625216.8.test-only.patch, failed testing.

tstoeckler’s picture

catch’s picture

Status: Reviewed & tested by the community » Fixed

Committed/pushed to 8.1.x and cherry-picked to 8.0.x. Thanks!

  • catch committed 3693ba7 on 8.1.x
    Issue #2625216 by alexpott: LocaleConfigManager::...

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.