Current configuration on the wiki
Find a file
Timo Tijhof 67f3df57f9 MessageCache: Replace internal loadedLanguages array with special cache key
Before c962b48056, the 'loadedLanguages' array was used to track
which languages were loaded and in the cache, with 'cache' being a
simple array. In that commit, the 'cache' array also started being used
for incomplete datasets, which didn't affect 'loadedLanguages'.

Then in 97e86d934b, the 'loadedLanguages' array was removed in favour
of checking keys on 'cache' directly, and 'cache' was converted to
MapCacheLRU.

This led to problem where partially loaded data was mistaken for being
full datasets (fatal error, T208897). This was fixed in a5c984cc59,
by bringing back the 'loadedLanguages' array, which fixed the issue from
the POV of partially loaded data.

However, this then exposed a new problem. The 'cache' data can be evicted
by MapCacheLRU, whereas 'loadedLanguages' is not aware of that. Thus it
claims languages are loaded that sometimes aren't. (This only affects web
requests where more than 5 language codes are involved, per MapCacheLRU.)

Fix this by re-removing the 'loadedLanguages' array, this time
strengthening the 'cache' key check to not just check that the root key
exists, but that it is in fact holding the full dataset as generated by
MessageCache::load(). The 'VERSION' key appears to be a good proxy for
that.

Bug: T230690
Change-Id: I1162a3857376aa37e5894ae3c8be84a2295782a3
2019-10-02 22:47:00 +00:00
.phan phan: Enable PhanTypeMismatchArgument issue 2019-09-19 20:11:42 +02:00
.pipeline .pipeline/config.yaml: remove extraneous tab character 2019-10-02 13:43:01 -06:00
cache
docs docs: Fix typo on Doxygen main page 2019-09-27 07:45:59 -07:00
extensions
images
includes MessageCache: Replace internal loadedLanguages array with special cache key 2019-10-02 22:47:00 +00:00
languages Merge "Optionally require both username and email for password resets" 2019-10-02 21:41:50 +00:00
maintenance Merge "Split down patch-actor-table.sql" 2019-09-30 17:40:25 +00:00
mw-config Remove unused .success-box class 2019-09-17 15:24:24 -07:00
resources resources: Remove @embed where it may do more harm than good 2019-10-01 21:04:28 +00:00
skins
tests Merge "Optionally require both username and email for password resets" 2019-10-02 21:41:50 +00:00
.editorconfig
.eslintrc.json
.fresnel.yml
.gitattributes
.gitignore
.gitreview
.mailmap Merge "Add Martin Urbanec to .mailmap" 2019-09-02 23:03:18 +00:00
.phpcs.xml Make most special pages class names match filename 2019-09-10 02:47:08 +01:00
.stylelintrc.json
.travis.yml Bump PHP version requirement to 7.2.0+ 2019-09-16 18:14:09 -07:00
api.php Avoid using "enqueue" mode for deferred updates in doPostOutputShutdown 2019-09-30 22:59:59 +00:00
autoload.php Remove Revision::getRevisionText and gated pre-MCR schema access 2019-09-27 09:40:02 -07:00
CODE_OF_CONDUCT.md docs: Exclude extra markdown files from Doxygen 2019-09-13 16:35:49 +00:00
composer.json Drop HHVM support from MediaWiki 2019-10-02 14:32:01 -07:00
composer.local.json-sample
COPYING
CREDITS Fix duplicate Jon Harald Søby in CREDITS 2019-09-02 12:44:05 +02:00
FAQ
Gruntfile.js build: Lower default Karma logLevel during local development 2019-09-24 17:46:53 +01:00
HISTORY Prepare for REL1_34 cut, labelling master as 1.35-alpha 2019-09-30 10:19:58 -07:00
img_auth.php Avoid using "enqueue" mode for deferred updates in doPostOutputShutdown 2019-09-30 22:59:59 +00:00
index.php Add MW_REST_API and MW_ENTRY_POINT 2019-09-03 11:43:18 +10:00
INSTALL Bump PHP version requirement to 7.2.0+ 2019-09-16 18:14:09 -07:00
jsduck.json jquery.color: Merge $.colorUtil back into this module 2019-09-11 05:12:22 +01:00
load.php Avoid using "enqueue" mode for deferred updates in doPostOutputShutdown 2019-09-30 22:59:59 +00:00
opensearch_desc.php Add MW_REST_API and MW_ENTRY_POINT 2019-09-03 11:43:18 +10:00
package-lock.json selenium: Upgrade from webdriver v4 to v5 2019-09-29 02:59:44 +01:00
package.json selenium: Upgrade from webdriver v4 to v5 2019-09-29 02:59:44 +01:00
phpunit.xml.dist Discover unit tests in "Unit" directory 2019-09-04 15:49:58 +02:00
profileinfo.php Add MW_REST_API and MW_ENTRY_POINT 2019-09-03 11:43:18 +10:00
README
README.mediawiki
RELEASE-NOTES-1.34 Merge "Drop HHVM support from MediaWiki" 2019-10-02 22:23:26 +00:00
RELEASE-NOTES-1.35 Prepare for REL1_34 cut, labelling master as 1.35-alpha 2019-09-30 10:19:58 -07:00
rest.php Add MW_REST_API and MW_ENTRY_POINT 2019-09-03 11:43:18 +10:00
SECURITY
thumb.php Avoid using "enqueue" mode for deferred updates in doPostOutputShutdown 2019-09-30 22:59:59 +00:00
thumb_handler.php Add MW_REST_API and MW_ENTRY_POINT 2019-09-03 11:43:18 +10:00
UPGRADE

== MediaWiki ==

MediaWiki is a free and open-source wiki software package written in PHP. It
serves as the platform for Wikipedia and the other Wikimedia projects, used
by hundreds of millions of people each month. MediaWiki is localised in over
350 languages and its reliability and robust feature set have earned it a large
and vibrant community of third-party users and developers.

MediaWiki is:

* feature-rich and extensible, both on-wiki and with hundreds of extensions;
* scalable and suitable for both small and large sites;
* simple to install, working on most hardware/software combinations; and
* available in your language.

For system requirements, installation, and upgrade details, see the files
RELEASE-NOTES, INSTALL, and UPGRADE.

* Ready to get started?
** https://www.mediawiki.org/wiki/Special:MyLanguage/Download
* Looking for the technical manual?
** https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents
* Seeking help from a person?
** https://www.mediawiki.org/wiki/Special:MyLanguage/Communication
* Looking to file a bug report or a feature request?
** https://bugs.mediawiki.org/
* Interested in helping out?
** https://www.mediawiki.org/wiki/Special:MyLanguage/How_to_contribute

MediaWiki is the result of global collaboration and cooperation. The CREDITS
file lists technical contributors to the project. The COPYING file explains
MediaWiki's copyright and license (GNU General Public License, version 2 or
later). Many thanks to the Wikimedia community for testing and suggestions.