Page MenuHomePhabricator

Some global preference values will not save
Closed, ResolvedPublicBUG REPORT

Description

List of steps to reproduce (step by step, including full links if applicable):

  • Enable and set a global pref value for example fields: showhiddencats, allowemail
  • Save
  • Attempt to toggle the on/off value
  • Save

What happens?:
*The new value is not saved

What should have happened instead?:
*The new value should be saved

Software version (if not a Wikimedia wiki), browser information, screenshots, other information, etc:

Screenshot:

image.png (544×753 px, 17 KB)

Uncheck the RIGHT checkbox, click save -- the value is NOT saved.

This is breaking things that are set globally (such as allow me to be emailed) that users have not configured locally.

Event Timeline

Possible relation to: T289931 , T250379 , T286271 , T262879 ? Is there a much larger problem going on with global preferences such that we should be bannering the preferences page to warn users to not rely on them for anything?

I cannot reproduce simply following those steps, I can enable and set a new global preference field and toggle it on/off fine, however if I then edit any local preference, those global preferences I just edited become in a stuck state like observed in this task.

What's weird is that they only become stuck in that wiki, so I can go to another wiki and edit that global preference, and now I have different global preferences on different wikis. It makes global preferences almost unusable IMO.

@Dylsss - thank you for the additional information - I'm quite sure some of my global prefs simply "stopped inheriting" locally when I saved something unrelated locally - for example was wondering "why can't I see hidden categories on this project anymore" - and it was this situation.

It seems that after setting any local exception once, checkboxes in Special:GlobalPreferences were controlled by the local preferences, whether the checkbox of "set a local exception" is checked or not. Fortunately, it wouldn't affect the global database.

I set the global preferences on mediawikiwiki and monitor them on metawiki where I haven't set a local exception yet, the Special:GlobalPreferences on mediawikiwiki works, but wouldn't represent correct checkboxes after saving.

Change 737698 had a related patch set uploaded (by Func; author: Func):

[mediawiki/extensions/GlobalPreferences@master] Change the way of fetching global preferences for special pages

https://gerrit.wikimedia.org/r/737698

Change 737698 merged by jenkins-bot:

[mediawiki/extensions/GlobalPreferences@master] Change the way of fetching global preferences for Special:GlobalPreferences

https://gerrit.wikimedia.org/r/737698

The issue as described seems to be fixed now, but I'm finding some global preferences cannot be given local exceptions. I've filed T296028: Unable to set a local override for some Global Preferences for that.

Func claimed this task.

Is this resolved in that the condition should no longer be occurring in WMF production wikis, or just that software that will eventually make this work is ready?

Because I'm still seeing problems in production.

Steps to reproduce:

  1. Go to preferences: https://en.wikipedia.org/wiki/Special:Preferences#mw-prefsection-watchlist
  2. View the value of "Use non-JavaScript interface" (currently UNCHECKED, local exception box: UNCHECKED)
  3. Go to global preferences: https://en.wikipedia.org/wiki/Special:GlobalPreferences#mw-prefsection-watchlist
  4. See "Use non-Javascript interface" current state (currently GLOBAL checked, value:unchecked)
  5. Click value to CHECKED
  6. Click SAVE
  7. Page reloads - FAIL

Result: "Use non-Javascript interface" is still (currently GLOBAL checked, value:unchecked)

Expected Result: "Use non-Javascript interface" is still (currently GLOBAL checked, value:checked)

Note: uncheck global, save, recheck both global and value, save: also fails in to same state: global:on,value:off

JJMC89 added a subscriber: JJMC89.

The fix is in 1.38.0-wmf.9, but enwiki is on 1.38.0-wmf.7.

Thanks - will check again in 2 releases - as I continue to ruminate on why we don't have an incident management system......

@Xaosflux: I'd say we have some incident management systems (but that term likely depends on definitions and expectations).
If you would like to elaborate a bit, that would probably be a good fit for the wikitech-l mailing list.

If it cleanly cherry-picks, it should probably be backported to wmf.7 as the fate of wmf.9 is still up in the air.

Change 747477 had a related patch set uploaded (by Func; author: Func):

[mediawiki/extensions/GlobalPreferences@master] Fix support for setting local exceptions on CheckMatrix fields

https://gerrit.wikimedia.org/r/747477

Change 747477 merged by jenkins-bot:

[mediawiki/extensions/GlobalPreferences@master] Fix support for setting local exceptions on CheckMatrix fields

https://gerrit.wikimedia.org/r/747477

Change 753067 had a related patch set uploaded (by Func; author: Func):

[mediawiki/extensions/GlobalPreferences@REL1_37] Change the way of fetching global preferences for Special:GlobalPreferences

https://gerrit.wikimedia.org/r/753067

Change 753067 merged by jenkins-bot:

[mediawiki/extensions/GlobalPreferences@REL1_37] Change the way of fetching global preferences for Special:GlobalPreferences

https://gerrit.wikimedia.org/r/753067