jenkins-bot [Sat, 24 Oct 2015 20:22:51 +0000 (20:22 +0000)]
Merge "Move MultiWriteBagOStuff to /libs"
Aaron Schulz [Sat, 24 Oct 2015 20:13:01 +0000 (13:13 -0700)]
Make DBReadOnlyError extend DBExpectedError
This makes the output formatting a bit prettier
Change-Id: I5d5c5a421326029323ef367feac70179ecb2d9e1
Aaron Schulz [Sat, 24 Oct 2015 07:48:40 +0000 (00:48 -0700)]
Move MultiWriteBagOStuff to /libs
Also moved related tests files to /libs.
Change-Id: I806eeaa30205733d497adde933baf0c4157f7aae
Florian [Sat, 24 Oct 2015 18:34:53 +0000 (20:34 +0200)]
Make sure, that a tags and input tags with mw-ui-button has the same height
Line-height inherited from another element behave different for input and a
tags. While a-tags correctly inherit the line-height from a parent element,
input tags doesn't. Fix that by adding the correct line-height (normal) to
a tags with mw-ui-button.
Bug: T116427
Change-Id: I4822754157b95094605209111e72bce11d34b077
Paladox [Sat, 24 Oct 2015 14:55:55 +0000 (15:55 +0100)]
Update grunt-jsonlint to 1.0.5
This is a minor update there were packages updates in this version.
Change-Id: I43cced8c20153d06f764ebba90f64de0431e2d3f
jenkins-bot [Sat, 24 Oct 2015 07:43:17 +0000 (07:43 +0000)]
Merge "Minor fix to primeFileCache() comment"
Aaron Schulz [Fri, 2 Oct 2015 00:57:07 +0000 (17:57 -0700)]
Enforce stricter slave lag limits for bot API requests
* All users with the bot right sending requests to
write APIs will get a read-only error when slave
lag is high. The lag tolerance is configured via
$wgAPIMaxLagThreshold.
* Making this lower than 'max lag' in the LBFactory
config means bots get read-only errors before other
users, which is sensible.
* The default LoadBalancer 'max lag' is now 10 instead
of 30, which now matches the timeout used for waiting
on MASTER_POS_WAIT() for ChronologyProtector. This is
better for assuring that users see their own changes.
Bug: T95501
Change-Id: If9d8f4ef47258d5afb7a0e947c6e6f040cbc7e10
jenkins-bot [Sat, 24 Oct 2015 07:28:11 +0000 (07:28 +0000)]
Merge "Provide some default $wgRateLimits values"
Aaron Schulz [Thu, 22 Oct 2015 04:52:52 +0000 (21:52 -0700)]
Provide some default $wgRateLimits values
* This provides some minimal out-of-the-box protection.
* These mostly are the values used by WMF in mediawiki-config
Change-Id: Ie510ca9314e151f9c0ad0705d096fe2bb749a59d
Aaron Schulz [Sat, 24 Oct 2015 05:44:05 +0000 (05:44 +0000)]
Merge "Fixes to MemcachedBagOStuff::makeKeyInternal()"
Aaron Schulz [Sat, 24 Oct 2015 05:24:48 +0000 (22:24 -0700)]
Add wfWaitForSlaves() to HTMLCacheUpdateJob
Change-Id: Iabf3d01f15b36bcb51e7fd8512404df2a3aedf35
Aaron Schulz [Sat, 24 Oct 2015 04:03:11 +0000 (21:03 -0700)]
Fixes to MemcachedBagOStuff::makeKeyInternal()
* Follow-up to
0c9fb12265e2
* Make sure colons actually get escaped
* Added more unit tests
* Also fixed the test actual/expected order
Change-Id: Ie04ea6059ee1eb6d1da8f30fefdec52fa49d38fb
jenkins-bot [Sat, 24 Oct 2015 04:38:46 +0000 (04:38 +0000)]
Merge "Web installer should not pollute global namespace with session variables"
Aaron Schulz [Sat, 24 Oct 2015 04:14:11 +0000 (21:14 -0700)]
Remove paranoid title check from RefreshLinksJob::runForTitle
Change-Id: Ie2b875dcb394e9cf20818a26d245684933765baf
Ori Livneh [Fri, 23 Oct 2015 22:12:51 +0000 (15:12 -0700)]
Escape colons in BagOStuff key segments
For the sake of safety and correctness, the following BagOStuff::makeKey()
invocations should return distinct keys:
$cache->makeKey( 'ab:', 'cd' );
$cache->makeKey( 'ab', ':cd' );
That is not currently the case, because while we use ':' as a key path
separator, we don't escape ':' in the input supplied to makeKey(). So, make
BagOStuff::makeKeyInternal() URL-encode colons.
To prevent this from messing up the max. key length calculations, reproduce
this logic in MemcachedBagOStuff::makeKeyInternal(), in lieu of having the
method call its parent.
Change-Id: I83ea7e7336a1c9e64aa42284c2517089a736efe5
Ori Livneh [Sat, 24 Oct 2015 00:53:25 +0000 (17:53 -0700)]
Ensure all key transformations are applied by BagOStuff::makeKeyInternal()
Currently we have to undo any transformations we apply to keys in getMulti() by
iterating over the response array keys reversing any changes. This is hairy and
complicated. So --
* Replace calls to MemcachedBagOStuff::encodeKey() with calls to a new method,
MemcachedBagOStuff::validateKeyEncoding(). The new method only validates that
the key is compatible with memcached. If it is not, it throws an exception.
If it is, it returns the key unmodified.
* Remove MemcachedBagOStuff::{encode,decode}Key(), since they no longer serve a
purpose, and have no callers.
Change-Id: If3e20c6a1a1b42fc1f2823aa660328e37c26eccb
Aaron Schulz [Sat, 24 Oct 2015 00:18:56 +0000 (17:18 -0700)]
Minor fix to primeFileCache() comment
Change-Id: I7d040c5a914574df72fa31612df0eb28e15fd46c
Aaron Schulz [Fri, 23 Oct 2015 18:48:50 +0000 (11:48 -0700)]
Fixes related to WikiPage::triggerOpportunisticLinksUpdate()
* Focus on updating links that would *not* already be updated
by jobs, not those that already *will* be updated.
* Place the jobs into a dedicated queue so they don't wait
behind jobs that actually have to parse every time. This
helps avoid queue buildup.
* Make Job::factory() set the command field to match the value
it had when enqueued. This makes it easier to have the same
job class used for multiple queues.
* Given the above, remove the RefreshLinksJob 'prioritize' flag.
This worked by overriding getType() so that the job went to a
different queue. This required both the special type *and* the
flag to be set if using JobSpecification or either ack() would
route to the wrong queue and fail or the job would go in the
regular queue. This was too messy and error prone. Cirrus jobs
using the same pattern also had ack() failures for example.
Change-Id: I5941cb62cdafde203fdee7e106894322ba87b48a
saper [Fri, 23 Oct 2015 20:54:42 +0000 (22:54 +0200)]
Web installer should not pollute global namespace with session variables
There is no need to store session variables
(that also include user-supplied arguments)
as $wgXXX global variables.
Bug: T116375
Change-Id: I880d4299566beaf99ed1fc21c690cdda64149b0e
jenkins-bot [Fri, 23 Oct 2015 23:36:29 +0000 (23:36 +0000)]
Merge "Improve normalization and sanitization of memcached keys"
saper [Fri, 23 Oct 2015 23:23:18 +0000 (01:23 +0200)]
Install link to Manual:Combating_spam on the home page
Bug: T85327
Change-Id: I2bfe8b1489f748df2d24946d7c49b97d5cbf921e
Ori Livneh [Fri, 23 Oct 2015 18:10:10 +0000 (11:10 -0700)]
Improve normalization and sanitization of memcached keys
The motivation for this patch came from seeing the following error in the
memcached log:
memcached ERROR: Memcached error for key "flowdb:flow_ref:wiki:by-source:\
v3:0:tawikinews:பூமிக்கு_அச்சுறுத்தலான_சிறுகோள்களைக்_கண்டுபிடிக்கும்_முயற்சியில்_தனியார்_நிறுவன0jம்:4.7" \
on server ":": A BAD KEY WAS PROVIDED/CHARACTERS OUT OF RANGE
I submitted a fix to Flow in I26e531f6, but I noticed that AbuseFilter had a
similar issue (fixed by Aaron in I27b51a4b), so I started thinking about how
to solve this more generally:
* The regular expression we current use to sanitize keys does not cover
characters outside the ASCII range, but such characters can be illegal
if one of their constituent bytes (when taken by itself) is an ASCII
control character. So change the regular expression to cover any and all
characters that fall outside the range \x22-\x7e (and '#' -- see below).
* Enforce a key length limit of 255 bytes, which is the maximum length
permitted by the memcached protocol. The Tamil segment in the key above is 84
characters, but 233 bytes in UTF-8, which become 684 characters when
URL-encoded. To fix this, try to shrink any segment that would push the total
key length over the limit by md5()ing it. If the end result is *still* over
the limit (this would happen if, for example, $args consists of many short
strings), then concatenate all args together and MD5 them.
* MD5'd arguments are prefixed with '#'. Any "organic" '#'s in the key segments
are URL-encoded.
Change-Id: Ia46987d3b0a09bb6b1952abd936d4c72ea7c56a0
jenkins-bot [Fri, 23 Oct 2015 22:16:20 +0000 (22:16 +0000)]
Merge "installer: Define $wgResourceBasePath in LocalSettings.php"
jenkins-bot [Fri, 23 Oct 2015 22:02:01 +0000 (22:02 +0000)]
Merge "poolcounter: Add 'trigger' field to the slow-parse log"
saper [Fri, 23 Oct 2015 12:40:00 +0000 (14:40 +0200)]
installer: Define $wgResourceBasePath in LocalSettings.php
Bug: T116374
Bug: T75031
Change-Id: I459c1097ed7048c3fe24e636e9ea22ec2e3b2675
Timo Tijhof [Fri, 23 Oct 2015 18:33:52 +0000 (19:33 +0100)]
poolcounter: Add 'trigger' field to the slow-parse log
To better indicate that these are only triggered by page views.
We don't currently have any slow-parse logging for the parser
invocation that happens during save (which means we're potentially
missing lots of them).
Once we add that, this will help distinguish them.
Bug: T110760
Change-Id: I22be5684ef93efd410d683637e223f770d6c768c
jenkins-bot [Fri, 23 Oct 2015 20:30:20 +0000 (20:30 +0000)]
Merge "Remove buggy b/c logic in Parser::disableCache()/updateCacheExpiry()"
Aaron Schulz [Fri, 23 Oct 2015 19:35:43 +0000 (12:35 -0700)]
Remove buggy b/c logic in Parser::disableCache()/updateCacheExpiry()
* Setting mCacheTime to -1 is for old callers that
only check getCacheTime() instead of getCacheExpiry().
Most of them are already broken (WikiLog/SemanticForms) as
they check for -1 which is in fact never returned
due to the TS_MW conversion in Parser::getCacheTime.
* By using -1, the value of page_links_updated can end up
as 1969, which is confusing and broken.
Change-Id: I8809a4258eacff05992a2c27ade7f6a0c1731c51
Translation updater bot [Fri, 23 Oct 2015 19:27:57 +0000 (21:27 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: Ia0a10443f264e238e6136edbb2bb60dd9ddd1c96
jenkins-bot [Fri, 23 Oct 2015 19:04:53 +0000 (19:04 +0000)]
Merge "Setup.php: Remove incorrect comment"
Bartosz Dziewoński [Fri, 23 Oct 2015 18:50:11 +0000 (20:50 +0200)]
Setup.php: Remove incorrect comment
This is not true since $wgSkinExtensionFunctions was removed in r87487.
Change-Id: Ia2c75aa191516fa43272ed51789579cf7afd9e37
Kunal Mehta [Thu, 15 Oct 2015 18:37:38 +0000 (11:37 -0700)]
Throw Exceptions on preg_* failures in MagicWordArray::matchAndRemove()
There are a lot of other cases in this file alone that need to be fixed
(e.g. (bool)preg_match), but those should be fixed in a more systematic
way like a wrapper function.
Bug: T115514
Change-Id: I3840a56adc0a6e50963b930051892491f8e90245
jenkins-bot [Fri, 23 Oct 2015 15:36:30 +0000 (15:36 +0000)]
Merge "Move CAPTCHA messages into ConfirmEdit and update class names"
Fomafix [Fri, 23 Oct 2015 12:24:15 +0000 (12:24 +0000)]
mediawiki.notification.css: Avoid horizontal scrollbar on fade in and fade out
This is a follow-up to I01473a199665b9fd86ed50b7d117532ac94f3edf.
Change-Id: I596927bfca0efd52db8d46eeea9ba38c7a9f7ca5
jenkins-bot [Fri, 23 Oct 2015 07:44:45 +0000 (07:44 +0000)]
Merge "ApiQueryAllRevisions: Actually use 'start' and 'end'"
Timo Tijhof [Fri, 25 Sep 2015 15:15:58 +0000 (16:15 +0100)]
mediawiki.notification: Use CSS tranforms for in/out animations
Remove the whole placeholder system. This was needed to preserve
parking space while visually animating the element elsewhere.
CSS transforms have this behaviour naturally.
Change-Id: I01473a199665b9fd86ed50b7d117532ac94f3edf
Aaron Schulz [Fri, 23 Oct 2015 03:40:57 +0000 (20:40 -0700)]
Reduce DBPerformance warning spam for jobs a bit
Change-Id: I1c5fdae6e0f98fff5f3336d8a46a4b3ff25d5bad
jenkins-bot [Fri, 23 Oct 2015 01:43:28 +0000 (01:43 +0000)]
Merge "Bound BagOStuff::lock() RTT estimate for sanity"
jenkins-bot [Fri, 23 Oct 2015 01:32:00 +0000 (01:32 +0000)]
Merge "Make TransactionProfiler show the actual query times"
jenkins-bot [Thu, 22 Oct 2015 21:40:44 +0000 (21:40 +0000)]
Merge "Fix ChangeTag "lockTSE" values as INF does not actually work"
Stanislav Malyshev [Fri, 18 Sep 2015 19:30:30 +0000 (12:30 -0700)]
Displaying search results for multiple wikis
Uses fully translated string like search-interwiki-results-abwiki
which should be present in WikimediaMessages.
Requires Ic4bdd9462f844febea2e402e4b89d9dcc4c836b6
Supports I0d0efacf3066b3b5fe0bfcb058dd0b0f9988ccae
Bug: T112349
Change-Id: Ib6524bc79e1648ccf6adc5745f0dbc4c26dcb0d2
jenkins-bot [Thu, 22 Oct 2015 21:31:12 +0000 (21:31 +0000)]
Merge "Revert "mediawiki.Upload.BookletLayout: If the user can't upload, don't show them the form""
saper [Fri, 14 Nov 2014 00:56:47 +0000 (01:56 +0100)]
Use ImportStringSource for simple import sources
Bug: T75283
Change-Id: I61c94202467ae6729ae52684a6477f7cbd8e00b7
Bartosz Dziewoński [Thu, 22 Oct 2015 21:20:50 +0000 (21:20 +0000)]
Revert "mediawiki.Upload.BookletLayout: If the user can't upload, don't show them the form"
This actually won't work for Wikimedia wikis, turns out
that many of them disabled local uploads.
This reverts commit
29edb68446b5b6faa4b5038698f042ef25e4425d.
Bug: T115866
Change-Id: Ib28539f2ff22cdbf1d80b1b601e7855c1110ad40
jenkins-bot [Thu, 22 Oct 2015 21:10:38 +0000 (21:10 +0000)]
Merge "mediawiki.Upload.BookletLayout: If the user can't upload, don't show them the form"
jenkins-bot [Thu, 22 Oct 2015 21:10:34 +0000 (21:10 +0000)]
Merge "Make LinksUpdate::__construct() use normal type hints"
Aaron Schulz [Thu, 22 Oct 2015 21:00:06 +0000 (14:00 -0700)]
Fix ChangeTag "lockTSE" values as INF does not actually work
Change-Id: If6c6b034be60ffc8b22b67cef12e5d701a871788
jenkins-bot [Thu, 22 Oct 2015 20:46:00 +0000 (20:46 +0000)]
Merge "Properly make LinksUpdate be recursive when done from job queue"
Aaron Schulz [Thu, 22 Oct 2015 20:25:49 +0000 (13:25 -0700)]
Make LinksUpdate::__construct() use normal type hints
Change-Id: Ie5f4de95d07ac9f24e415f92c5116385863a47f9
Bartosz Dziewoński [Thu, 22 Oct 2015 19:25:32 +0000 (21:25 +0200)]
mediawiki.Upload.BookletLayout: If the user can't upload, don't show them the form
To improve in the future:
* Check the rights on the target wiki rather than current, they might
not be the same
* Use a better error message when not all logged-in users can upload
Bug: T115866
Change-Id: I6f68122b5399f4b8766825c752e964478ae7563d
Brian Wolff [Thu, 22 Oct 2015 18:56:03 +0000 (12:56 -0600)]
Properly make LinksUpdate be recursive when done from job queue
New enqueue method of DeferredUpdates was turning LinksUpdate
updates into Jobs. However RefreshLinksJob was not properly
reconstructing the secondary updates as being recursive (if they
were recursive). This means that templates weren't having the pages
that were using them being updated.
See also related T116001.
Change-Id: Ia06246efb2034fdfe07232fd8c2334160edbcf02
Translation updater bot [Thu, 22 Oct 2015 18:46:05 +0000 (20:46 +0200)]
Localisation updates from https://translatewiki.net.
Change-Id: I7830f3ff793b90c23a08fa3496a7178c127cd605
Glaisher [Mon, 19 Oct 2015 18:00:44 +0000 (23:00 +0500)]
Cleanup on Special:AllPages and Special:PrefixIndex
* Move pagination links to the left (on LTR) and below the form
* Drop a few HTML classes
* Minor code cleanups
* Remove Allpages link from Special:Allpages pagination links
Follows up I720d34e21950c18de3c6e0b1d6d8a4461db495cb
Bug: T32965
Change-Id: I19018d87b769320761a95410bb3198b31f16544d
Matthew Flaschen [Thu, 22 Oct 2015 14:49:09 +0000 (10:49 -0400)]
Move CAPTCHA messages into ConfirmEdit and update class names
Depends on I0e55a159efd66a73cd217d9a5e86b2bced90f57a in ConfirmEdit .
This should be merged just after that.
Also, remove a dead config variable.
This leaves only the CAPTCHA stuff that is actually specific
to CreateAccount.
Change-Id: I8924d537cad3e39adace99fb20626247128d9bd9
umherirrender [Fri, 16 Oct 2015 14:02:01 +0000 (16:02 +0200)]
Move Special:PageLanguage to the pagetools group on Special:SpecialPages
Acting on pages, so that group is better than the default of "other"
Change-Id: I50c993d69048eeee913fbab513711018999aafe9
jenkins-bot [Thu, 22 Oct 2015 07:10:31 +0000 (07:10 +0000)]
Merge "Remove old ProfilerOutputUdp class"
Ori Livneh [Thu, 22 Oct 2015 06:44:26 +0000 (23:44 -0700)]
JobQueueRedis::doBatchPush(): report metrics even when failures occur
The way the method is currently written, no stats are reported at all when
failures occur.
Change-Id: I627e8f6ce3a59098bc8949da7ed22f5c924177fc
Ori Livneh [Thu, 22 Oct 2015 06:34:06 +0000 (23:34 -0700)]
jobqueue: track real job inserts as 'inserts_actual'
The `inserts` metric includes dupes. `inserts_actual` will track the rate at
which the job queue is actually growing.
Change-Id: Ie7c544fc8e59180a204d1d149b6a23ac48b8abab
Aaron Schulz [Thu, 22 Oct 2015 06:30:23 +0000 (23:30 -0700)]
Make TransactionProfiler show the actual query times
Also removed HTTP method from the message as logstash
gets those from the logger already
Change-Id: I7a6d9cb3ec8c7fcb53a081ee2bd055ff8c1c72c1
jenkins-bot [Thu, 22 Oct 2015 05:46:45 +0000 (05:46 +0000)]
Merge "CacheLRU: Simplify >0 assertion and remove verbose inline comment"
Aaron Schulz [Thu, 22 Oct 2015 04:59:47 +0000 (21:59 -0700)]
Make LinksUpdate job spec use "refreshLinksPrioritized"
This was missing in
4fcc427c10 due to being lost in PS4
Change-Id: I24641e7eccc1e61226777504dcfd75e1aa7f58c6
Aaron Schulz [Thu, 22 Oct 2015 03:59:47 +0000 (20:59 -0700)]
Remove old ProfilerOutputUdp class
This uses a non-standard output and requires a custom
collector that wmf does not maintain nor use anymore.
Change-Id: I41a68f7061465417fbdc5ca41f8eb6e1f99f1111
Aaron Schulz [Thu, 22 Oct 2015 03:14:54 +0000 (20:14 -0700)]
Bound BagOStuff::lock() RTT estimate for sanity
The timestamp difference might be 0 (or in rare cases, less)
Change-Id: I0298b413df637d9da5ff33c078ad49dadc8a46ce
jenkins-bot [Thu, 22 Oct 2015 02:33:16 +0000 (02:33 +0000)]
Merge "objectcache: Fix grammar error in BagOStuff::getWithToken doc"
Aaron Schulz [Sun, 18 Oct 2015 22:57:42 +0000 (15:57 -0700)]
Add WRITE_SYNC flag to BagOStuff::set()/merge()
* This blocks on writing to all replicas
and returns false if any failed.
* This is useful if ChronologyProtector is to work across
domains by having the writes go everywhere so that later
reads will see them (and be local at the same time).
* Redundant doc comments were also removed.
Change-Id: I9ed098d563c64dba605e7809bc96731da3b3e79d
Timo Tijhof [Thu, 22 Oct 2015 01:35:35 +0000 (02:35 +0100)]
objectcache: Fix grammar error in BagOStuff::getWithToken doc
Follows-up
1fa1235d32.
Change-Id: I19a4430609423f5ff32a1014ed21131175469adf
Aaron Schulz [Thu, 8 Oct 2015 07:09:08 +0000 (00:09 -0700)]
Make DeferredUpdates::doUpdates always commit per task
* All callers are either using commit already or would be fine
using it (e.g. Maintenance scripts and JobRunner that have
no real transaction open).
Change-Id: I9f54b27619da6dac2cb63d255995aabc4ee78002
Aaron Schulz [Thu, 22 Oct 2015 00:31:18 +0000 (17:31 -0700)]
Make hookErrorHandler() only care about serious signature errors
Previously, it would send all manor of warnings to the error
and error-json channels. This adds a lot of overhead due to
AbuseFilter parse/eval errors. By passing immediately instead
of after calling handleError(), that overhead is avoided. Since
it still passes (e.g. returns false), any default PHP warning
logging still applies.
Change-Id: I18e60c09c2a48f2e26abab5d451bb52ea4ba7961
jenkins-bot [Thu, 22 Oct 2015 00:11:29 +0000 (00:11 +0000)]
Merge "TemplateParser: Use context makeKey() instead of wfMemcKey()"
Timo Tijhof [Wed, 21 Oct 2015 23:55:10 +0000 (00:55 +0100)]
TemplateParser: Use context makeKey() instead of wfMemcKey()
Also:
* Use ternary shorthand.
* Remove verbose comment about APC fallback. APC always requires
a fallback and is enforced by the method being called. Stating
the obvious is confusing here.
Change-Id: Ie5cb3bdc60600806b01b57f1f1b352b981818b0d
jenkins-bot [Wed, 21 Oct 2015 20:54:04 +0000 (20:54 +0000)]
Merge "mediawiki.api: Don't hold references to finished requests forever"
jenkins-bot [Wed, 21 Oct 2015 20:05:47 +0000 (20:05 +0000)]
Merge "Replace some calls to wfGetMainCache()"
jenkins-bot [Wed, 21 Oct 2015 19:54:26 +0000 (19:54 +0000)]
Merge "Fix transaction warnings on test cleanup rollback()"
Bartosz Dziewoński [Tue, 20 Oct 2015 22:50:20 +0000 (00:50 +0200)]
mediawiki.api: Don't hold references to finished requests forever
Follow-up to Ie614b05fbfbddca38ea201e90053bebdd58da949.
Also removed a TODO comment which no longers makes sense. (We can't
share API objects because users could abort each others' requests.)
Change-Id: I106139d6e463d7e5e3473035835eb74b18829b87
jenkins-bot [Wed, 21 Oct 2015 19:23:46 +0000 (19:23 +0000)]
Merge "mediawiki.api: Remove incomprehensible TODO"
jenkins-bot [Wed, 21 Oct 2015 19:13:55 +0000 (19:13 +0000)]
Merge "Send X-Database-Lagged header to help with debugging"
Aaron Schulz [Wed, 21 Oct 2015 19:13:22 +0000 (12:13 -0700)]
Fix transaction warnings on test cleanup rollback()
Change-Id: I85f607c7562474d57f515a947181884fccae735c
Aaron Schulz [Wed, 21 Oct 2015 00:27:27 +0000 (17:27 -0700)]
Send X-Database-Lagged header to help with debugging
Change-Id: Ib654c49a61a1279091c5da92a2bef2ad1f992d23
Aaron Schulz [Tue, 6 Oct 2015 20:24:22 +0000 (13:24 -0700)]
Convert MovePage to startAtomic()/endAtomic()
* This makes moves of a page and its subpages atomic
as one operation. Note that $wgMaximumMovedPages
already bounds the number of page rows changed.
* The TitleMoveComplete hook will fire for all
titles after the operation rather than after
each title move.
* Remove LocalFile comment about it commiting the
transaction because LocalFile::lock()/unlock()
check trxLevel() and reference count.
Change-Id: Ic7f6964f94f0b0f0bedc27012e5b5b012a4afdb2
jenkins-bot [Wed, 21 Oct 2015 18:24:27 +0000 (18:24 +0000)]
Merge "Convert showPatrolFooter() to using WAN cache"
jenkins-bot [Wed, 21 Oct 2015 17:55:19 +0000 (17:55 +0000)]
Merge "mw.ForeignStructuredUpload: Provide category suggestions from the right wiki"
Bartosz Dziewoński [Tue, 20 Oct 2015 22:48:22 +0000 (00:48 +0200)]
mediawiki.api: Remove incomprehensible TODO
Change-Id: Iae632527c8b104ddd94b89679d1dba977fddb557
jenkins-bot [Wed, 21 Oct 2015 15:45:13 +0000 (15:45 +0000)]
Merge "mw.ForeignStructuredUpload: Rearrange messages to always display license name"
Matt Russell [Mon, 31 Mar 2014 07:58:54 +0000 (07:58 +0000)]
Add pst option to API difftotext
Adds the option difftotextpst to ApiQueryRevisionsBase.php, which will perform a
pre-save transform on the supplied text, before diffing it against the
requested revision.
Bug: T53155
Change-Id: Ia480e8cd4ceeeb0b2812dc8ec96650adb83c03af
Brad Jorsch [Wed, 21 Oct 2015 14:23:37 +0000 (10:23 -0400)]
ApiQueryAllRevisions: Actually use 'start' and 'end'
No idea how that got missed.
Bug: T116177
Change-Id: I69cb4d6ce12fe39ab5683f7791d00ee16958981d
jenkins-bot [Wed, 21 Oct 2015 12:55:34 +0000 (12:55 +0000)]
Merge "Sync up with Parsoid parserTests."
Amir E. Aharoni [Wed, 21 Oct 2015 11:50:11 +0000 (14:50 +0300)]
Better phrasing for the contentmodelediterror message
Change-Id: Ie69642f8ae6993d7bb08b785229321ed04428502
Aaron Schulz [Wed, 21 Oct 2015 11:06:42 +0000 (04:06 -0700)]
Convert showPatrolFooter() to using WAN cache
Change-Id: I55503eab91d0c64b2dcbc86257088a3eac52a2a1
Bartosz Dziewoński [Wed, 21 Oct 2015 10:25:52 +0000 (12:25 +0200)]
mw.ForeignStructuredUpload: Rearrange messages to always display license name
See the task for screenshots.
Bug: T116046
Change-Id: I3dc021713c460e4cd639b7d85545ad4b5afe514b
Aaron Schulz [Wed, 21 Oct 2015 06:52:07 +0000 (23:52 -0700)]
Replace some calls to wfGetMainCache()
Change-Id: I9ba8fd5918877af6312b0854634bd36211438f00
saper [Thu, 15 Oct 2015 07:08:02 +0000 (09:08 +0200)]
Remove wgAlwaysUseTidy from ExpandTemplates
Fixes ConfigException:
Exception encountered, of type "ConfigException"
[
1235d69e] index.php/Special:ExpandTemplates ConfigException
from line 53 of
includes/config/GlobalVarConfig.php:
GlobalVarConfig::get: undefined option: 'AlwaysUseTidy'
Backtrace:
includes/specials/SpecialExpandTemplates.php(117):
GlobalVarConfig->get(string)
i includes/specialpage/SpecialPage.php(384):
SpecialExpandTemplates->execute(NULL)
Change-Id: Iba16f12f50f7427533f89817eb40f46a2ab58ec4
jenkins-bot [Wed, 21 Oct 2015 05:06:44 +0000 (05:06 +0000)]
Merge "Improve MultiWriteBagOStuff::merge() cross-DC performance"
Aaron Schulz [Wed, 21 Oct 2015 04:50:27 +0000 (21:50 -0700)]
Improve MultiWriteBagOStuff::merge() cross-DC performance
Implement merge() by getting a lock on the tier 1
cache, getting it's value, generating the new one,
writing to all tiers, and then unlocking tier 1.
This is done by just using the stock mergeViaLock().
This means that if tier 1 is in the same DC, the
other tiers only need 1 request each, just for set().
Change-Id: I4b0c303ef3b86b63e7630032ed0b010e79706324
jenkins-bot [Wed, 21 Oct 2015 04:08:02 +0000 (04:08 +0000)]
Merge "Handle revisions with different content models in EditPage"
jenkins-bot [Wed, 21 Oct 2015 03:58:33 +0000 (03:58 +0000)]
Merge "Improve documentation of $wgShowRollbackEditCount"
Timo Tijhof [Tue, 20 Oct 2015 21:14:33 +0000 (22:14 +0100)]
resourceloader: Remove CacheEpoch from MessageBlobStore::getFromDB
CacheEpoch isn't meant for this (it's meant for page cache), I can't
imagine a scenario in which we'd want to bump that to invalidate
MessageBlobStore. It should be standalone and can be easily cleared
if needed by truncating the relevant table (it's automatically
repopulated).
This also removes wfTimestamp/DateTime overhead.
Change-Id: Iab06edbf71f20f3430207a80df90131c79dc03a7
Bartosz Dziewoński [Tue, 20 Oct 2015 22:32:19 +0000 (00:32 +0200)]
mw.ForeignStructuredUpload: Provide category suggestions from the right wiki
Also check for category existence on the right wiki, and generate
links pointing to the right wiki. Usually.
Bug: T116075
Change-Id: I85da301db4cb407b011277b0c00eb09a8bf3829f
Timo Tijhof [Wed, 21 Oct 2015 01:57:32 +0000 (02:57 +0100)]
Improve documentation of $wgShowRollbackEditCount
There were a few grammatical errors, and ambiguities.
Change-Id: I49f998c3d2a693bd755c1aaa4cf08bc5fd5fd505
Aaron Schulz [Tue, 20 Oct 2015 23:42:02 +0000 (16:42 -0700)]
Add IDatabase::isReadOnly() method
Also made getReadOnlyReason() protected as it has no outside
callers and is not part of IDatabase.
Change-Id: If6694a19df038af645a97f701397a536570d1b42
jenkins-bot [Tue, 20 Oct 2015 23:37:22 +0000 (23:37 +0000)]
Merge "Make DB handles inherit configured read-only mode"