Summary
A globally locked account was observed continuing to edit and hold an active session for nearly an hour after the lock.
Technical notes
- Observed on LivMaddieFan26M3: account locked at 07:34, edit at 07:47, "IP change within the same session" entries in Logstash as late as 08:36:27.
- One possibility is that after CentralAuthUser::adminLock(), a cache miss on the local wiki repopulates memcached with a pre-lock row read from a lagged replica of the central DB, leaving gu_locked=0 and the old gu_auth_token cached until the CentralAuthUser TTL expires. If that's the case, then both CentralAuthSessionProvider::provideSessionInfo() and PermissionsHookHandler::onGetUserPermissionsErrorsExpensive() would consult that stale cache. This needs verification
- Possibly impacted by the CentralAuthUser cache version bump in T423687, which is in wmf.26
- Similar issue observed in T380260
Acceptance criteria
- root cause of post-lock session persistence is identified and documented
- a locked user cannot perform any non-read action within one request cycle of the lock