jenkins-bot [Tue, 19 Mar 2019 18:09:30 +0000 (18:09 +0000)]
Merge "Remove many references to db fields being retired as part of MCR Schema Migration"
jenkins-bot [Tue, 19 Mar 2019 16:39:34 +0000 (16:39 +0000)]
Merge "debug: Disable flaky CeeFormatterTest"
jenkins-bot [Tue, 19 Mar 2019 16:25:26 +0000 (16:25 +0000)]
Merge "Sync up with Parsoid parserTests.txt"
Bill Pirkle [Fri, 15 Mar 2019 15:59:41 +0000 (10:59 -0500)]
Remove many references to db fields being retired as part of MCR Schema Migration
Remove many references to database fields rev_text_id and ar_text_id,
which are being retired as part of MCR Schema Migration.
Some references remain, and will be removed under other patchsets
or other tasks.
Bug: T198341
Change-Id: Id044b8dcd7c9d09d5d6037eb732f6a105933f516
jenkins-bot [Tue, 19 Mar 2019 15:36:09 +0000 (15:36 +0000)]
Merge "rdbms: add bad mysql table/column codes to wasKnownStatementRollbackError()"
Arlo Breault [Tue, 19 Mar 2019 15:33:40 +0000 (11:33 -0400)]
Sync up with Parsoid parserTests.txt
This now aligns with Parsoid commit
94b8b491098f882582f372218df07f5b68f4eba1
Change-Id: I760e73c98109047e20e4c85b97853b9b3f50b090
Timo Tijhof [Tue, 19 Mar 2019 15:25:18 +0000 (15:25 +0000)]
debug: Disable flaky CeeFormatterTest
Follows-up
667b17a3193f0af0.
Bug: T218688
Change-Id: I70afc5b9c41ae8d593d71f27bc55b424d9de260c
jenkins-bot [Tue, 19 Mar 2019 15:06:46 +0000 (15:06 +0000)]
Merge "Revert "Split out new RefreshSecondaryDataUpdate class""
Timo Tijhof [Tue, 19 Mar 2019 03:01:43 +0000 (03:01 +0000)]
Revert "Split out new RefreshSecondaryDataUpdate class"
This reverts commits
a1f7fd3adaa3,
0ef02cd018901.
Bug: T218456
Change-Id: I9bbea3d13460ed44755d77fc61ff23fb906cf71e
jenkins-bot [Tue, 19 Mar 2019 14:37:54 +0000 (14:37 +0000)]
Merge "parser: Rename $lastSection to $lastParagraph"
jenkins-bot [Tue, 19 Mar 2019 14:37:48 +0000 (14:37 +0000)]
Merge "Revert "Temporarily trim leading/trailing whitespace from parser test clauses""
jenkins-bot [Tue, 19 Mar 2019 14:37:16 +0000 (14:37 +0000)]
Merge "parser: Omit outputting newline after final line"
jenkins-bot [Tue, 19 Mar 2019 14:36:36 +0000 (14:36 +0000)]
Merge "Remove rollback confirmation user preference"
jenkins-bot [Tue, 19 Mar 2019 14:18:30 +0000 (14:18 +0000)]
Merge "parser: Remove trailing newline after prefixes have been cleared"
jenkins-bot [Tue, 19 Mar 2019 14:18:22 +0000 (14:18 +0000)]
Merge "Temporarily trim leading/trailing whitespace from parser test clauses"
Tim Eulitz [Mon, 18 Mar 2019 13:40:09 +0000 (14:40 +0100)]
Remove rollback confirmation user preference
Due to a delay in the rollout of this feature, this part of the code has
to be temporarily removed again to prevent an unused setting from
popping up in the user settings.
Bug: T218556
Change-Id: I0f4e822fc25fddc2bc3c0b55b0792799a1e4c4ba
jenkins-bot [Tue, 19 Mar 2019 04:25:47 +0000 (04:25 +0000)]
Merge "Improve RemexStripTagHandler working with tables"
Aaron Schulz [Tue, 19 Mar 2019 03:22:59 +0000 (20:22 -0700)]
rdbms: add bad mysql table/column codes to wasKnownStatementRollbackError()
Change-Id: I826681ae7582b6f8af09b1d5ed08378532af2556
jenkins-bot [Tue, 19 Mar 2019 02:30:21 +0000 (02:30 +0000)]
Merge "Use READ_EXCLUSIVE in SpecialConfirmEmail::attemptConfirm"
jenkins-bot [Tue, 19 Mar 2019 02:30:11 +0000 (02:30 +0000)]
Merge "rdbms: document that IDatabase::selectFieldValues() keeps the order"
jenkins-bot [Tue, 19 Mar 2019 01:45:48 +0000 (01:45 +0000)]
Merge "Make BagOStuff::incr abstract to discourage bad implementations"
jenkins-bot [Tue, 19 Mar 2019 00:09:28 +0000 (00:09 +0000)]
Merge "Define ManualLogEntryBeforePublish hook"
jenkins-bot [Mon, 18 Mar 2019 23:52:33 +0000 (23:52 +0000)]
Merge "Replace $wgUser with RequestContext::getUser in User::getBlockedStatus"
Piotr Miazga [Wed, 13 Mar 2019 20:16:39 +0000 (21:16 +0100)]
Define ManualLogEntryBeforePublish hook
This hook is required by extensions like MobileFrontend to tag
log entries when actions are performed on the mobile web.
There is a possibility to tag log entries by using
'RecentChange_save' hook, but that works only when the log entry
is published to 'rc' or 'rcandudp'. This means, that tagged log
will appear also on the Special:RecentChanges page which is something
what extensions like 'Thanks' wants to avoid.
In the future we should avoid using 'RecentChange_save' as an
indirect way to tag log entries, and use the
'ManualLogEntryBeforePublish' hook instead.
To cover ourselves in the future, instead of passing &$tags only,
we pass the $this (the log entry object) so extensions can perform
additional checks before using setTags().
Bug: T215675
Change-Id: I747eded4bc5406cd5d4676fc93b0bb55c99f9a4d
Gergő Tisza [Mon, 18 Mar 2019 21:50:48 +0000 (14:50 -0700)]
Replace $wgUser with RequestContext::getUser in User::getBlockedStatus
$wgUser is not guaranteed to exist until MediaWiki has been fully
initialized; block status needs to be checked early on for
authentication-related permission checks.
Bug: T218608
Change-Id: I16315c071855024bc0412d5360c95f843420d9a9
Aaron Schulz [Mon, 18 Mar 2019 23:09:26 +0000 (16:09 -0700)]
Make BagOStuff::incr abstract to discourage bad implementations
Callers should really use atomic TTL-preserving implementations
so that calling code works correctly. The old default base class
code did not do either.
Change-Id: Icf66db05e48b86c8d481dc08dc9041bd1fa6dbe9
jenkins-bot [Mon, 18 Mar 2019 23:02:58 +0000 (23:02 +0000)]
Merge "Make DeferredUpdates enqueue updates that failed to run when possible"
jenkins-bot [Mon, 18 Mar 2019 22:47:44 +0000 (22:47 +0000)]
Merge "Provide a Taggable interface"
Piotr Miazga [Thu, 28 Feb 2019 17:24:10 +0000 (18:24 +0100)]
Provide a Taggable interface
The Taggable interface defines how to tag objects in MediaWiki.
For now there are only two Taggable objects:
- RecentChange
- ManualLogEntries
This interface should be used in places where we want to optionally
tag things, for example:
We want to tag all mobile web actions with 'web mobile edit'.
With that interface, we will be able to expect a Taggable object,
and call `addTags()` when we need to, without having a special check
to verify is it RecentChange, or is it ManualLogEntry. We will only
expect a Taggable object.
Additionally, added @deprecated note to ManualLogEntries::setTags()
as each call to this method will override all previous tags. This
action can be harmfull to parts of code that conditionally add tags.
If object was tagged in some way, we should preserve those tags.
If there are any special cases, where we want to override all tags,
we should provide `resetTags()` method.
Bug: T215675
Change-Id: Ia4c019db8ca6f37ce0f86bf7d134d6f1713daf56
Translation updater bot [Mon, 18 Mar 2019 21:55:09 +0000 (22:55 +0100)]
Localisation updates from https://translatewiki.net.
Change-Id: I7dea9fd7d9892ea16a33bf020f22957dbe29549c
jenkins-bot [Mon, 18 Mar 2019 21:25:59 +0000 (21:25 +0000)]
Merge "Mixin FlaggedElement to DateTimeInputWidget"
jenkins-bot [Mon, 18 Mar 2019 20:55:58 +0000 (20:55 +0000)]
Merge "Urlencode fragments when redirecting after editing"
Daimona Eaytoy [Mon, 18 Mar 2019 10:07:59 +0000 (11:07 +0100)]
Mixin FlaggedElement to DateTimeInputWidget
As consequence of Id46ca3b630a9d24bc4790c1aa8c6e15c95ea2e51.
Bug: T218513
Change-Id: Iaf1078971767224119138e47bb175094230c99a2
Max Semenik [Mon, 18 Mar 2019 05:42:42 +0000 (22:42 -0700)]
Urlencode fragments when redirecting after editing
This is a quick fix for the main symptom of the Chrome bug that results in
users being redirected to Special:BadTitle after section editing. We'll
need to discuss a more permanent solution.
Bug: T216029
Change-Id: I4b2d42ebc74031df86bc52310da71819da11c1ae
jenkins-bot [Mon, 18 Mar 2019 01:07:10 +0000 (01:07 +0000)]
Merge "Password: update documentation"
Translation updater bot [Sun, 17 Mar 2019 20:54:44 +0000 (21:54 +0100)]
Localisation updates from https://translatewiki.net.
Change-Id: I2d4ac09f82c79444730cf9cf0c8f01fc5109b917
Max Semenik [Sun, 17 Mar 2019 19:44:19 +0000 (12:44 -0700)]
Password: update documentation
Change-Id: Ifd7afc48e301a7985c2dd9134a7ea75af9bfeb4b
jenkins-bot [Sun, 17 Mar 2019 18:49:05 +0000 (18:49 +0000)]
Merge "Make LinkCache::isCacheable include namespaces like NS_CATEGORY/NS_MODULE"
jenkins-bot [Sun, 17 Mar 2019 16:33:19 +0000 (16:33 +0000)]
Merge "Advertise feeds only if $wgFeed is enabled"
RazeSoldier [Sun, 18 Feb 2018 17:31:29 +0000 (01:31 +0800)]
runJobs.php output something when the job queue is empty
If the job queue is empty, output "Job queue is empty."
Bug: T187628
Change-Id: I7d0925bd2995526b1a67148096e9543766a62da7
Aaron Schulz [Sun, 17 Mar 2019 05:35:43 +0000 (22:35 -0700)]
Use READ_EXCLUSIVE in SpecialConfirmEmail::attemptConfirm
Bug: T202149
Change-Id: I9abc9e653dcc0910a5eea1dad56b2432d33d3c44
saper [Sun, 28 Jan 2018 02:21:51 +0000 (03:21 +0100)]
Advertise feeds only if $wgFeed is enabled
Wikis with $wgFeed=false should not present an Atom icon on the RecentChanges/Watchlist.
Bug: T116145
Change-Id: Ic64f7f5115a77c42ed2b336f6996fe711b3822ba
jenkins-bot [Sat, 16 Mar 2019 22:54:32 +0000 (22:54 +0000)]
Merge "RELEASE-NOTES: Make more consistent and useful for sysadmins"
jenkins-bot [Sat, 16 Mar 2019 22:12:55 +0000 (22:12 +0000)]
Merge "Various fixes for phan-taint-check"
jenkins-bot [Sat, 16 Mar 2019 22:03:25 +0000 (22:03 +0000)]
Merge "ProtectionForm: Follow up on I167ae6300b37d4e9292"
jenkins-bot [Sat, 16 Mar 2019 21:23:36 +0000 (21:23 +0000)]
Merge "rdbms: improve database connection loss handling"
James D. Forrester [Fri, 15 Mar 2019 00:58:24 +0000 (17:58 -0700)]
RELEASE-NOTES: Make more consistent and useful for sysadmins
* Move the "upgrading" bit further up, and put the notes specific
to upgrading inside it.
* Word all configuration changes to start with the $wg… – rubric
so they're easy to spot.
* Be explicit when new configuration options are temporary.
* Split user and developer features. Sysadmin features are what
the "Configuration changes" section is for, so spell that out.
Change-Id: Id12ced8bb764f2c3945c14799d63c17e2711c6f6
Brian Wolff [Sun, 17 Feb 2019 11:47:41 +0000 (11:47 +0000)]
Various fixes for phan-taint-check
Change-Id: I56f42ef2d2e9b4f3c23e1e93d1a4d3db64f16de7
Derick Alangi [Mon, 11 Mar 2019 09:34:23 +0000 (10:34 +0100)]
ProtectionForm: Follow up on I167ae6300b37d4e9292
Per code search string "\$this\-\>showLogExtract\( \$ou", method
is only called within the ProtectionForm class so can be safely
made private but there are methods with the same name in a class
like LogEventsList but do different things.
Inspired by @Thiemo's comment on I167ae6300b37d4e9292.
Change-Id: Ic4983ccffecc6285f848d6e926017c4c6df4855f
Jack Phoenix [Fri, 15 Mar 2019 23:13:36 +0000 (01:13 +0200)]
Code style tweaks
Change-Id: I2c602ba642e5692e6c56817aac89be9058bf5bdb
Aaron Schulz [Thu, 14 Mar 2019 06:44:38 +0000 (23:44 -0700)]
Make LinkCache::isCacheable include namespaces like NS_CATEGORY/NS_MODULE
Category and module pages are some of the most frequently referenced
Change-Id: I6d29e883883cbea596b287494e75663d09130749
jenkins-bot [Sat, 16 Mar 2019 03:03:28 +0000 (03:03 +0000)]
Merge "User: Remove redundant wgClockSkewFudge code"
jenkins-bot [Sat, 16 Mar 2019 03:01:28 +0000 (03:01 +0000)]
Merge "Remove wgSitesCacheFile and rebuildSitesCache.php (unused)"
jenkins-bot [Fri, 15 Mar 2019 23:17:41 +0000 (23:17 +0000)]
Merge "Localisation updates from https://translatewiki.net."
jenkins-bot [Fri, 15 Mar 2019 23:11:11 +0000 (23:11 +0000)]
Merge "Make EditPage::getTemplates avoid page table query spam"
jenkins-bot [Fri, 15 Mar 2019 22:57:31 +0000 (22:57 +0000)]
Merge "rdbms: lower the log channel severity of LoadMonitor::getServerStates"
jenkins-bot [Fri, 15 Mar 2019 22:03:29 +0000 (22:03 +0000)]
Merge "Remove empty and unnecessary /* @{{ … */ comments"
jenkins-bot [Fri, 15 Mar 2019 21:46:07 +0000 (21:46 +0000)]
Merge "Fix WatchedItemStore last-seen stashing logic"
Translation updater bot [Fri, 15 Mar 2019 21:05:39 +0000 (22:05 +0100)]
Localisation updates from https://translatewiki.net.
Change-Id: I910aa8cc077a12f2a7ef00f41087f5c3e08ab0d4
Timo Tijhof [Fri, 15 Mar 2019 00:05:52 +0000 (00:05 +0000)]
User: Remove redundant wgClockSkewFudge code
Ensuring the new value is at least as high as 1 second higher
than the current value is sufficient.
The main code paths using this are checkAndSetTouched (for user group
changes) and saveSettings(), both of which use makeUpdateConditions() which
ensures we bail out if something else already wrote to it in the mean time.
As such, there is no longer a need to make sure our time is higher than
something another server may have written, given that is no longer something
we support.
This variable was introduced in 2005 (MW 1.4) with r9403 (
1d12276bcb3),
and factored out as newTouchedTimestamp() in 2007 (MW 1.8)
with r16772 (
c1094ba9876).
Change-Id: I940fb0dd125286a4a348c11e2c8d197f9288a75d
Timo Tijhof [Thu, 14 Mar 2019 19:46:19 +0000 (19:46 +0000)]
Remove wgSitesCacheFile and rebuildSitesCache.php (unused)
This seems to have been intended as optimization for SiteStore,
but was never used as far as I can tell. Instead, SiteStore is
already cached via LocalServerCache (APC).
Keep the FileBasedSiteLookup class for one release cycle in case
third parties not indexed by MediaWiki Codesearch are using it.
== History
* 2013: Report of high memcached usage by Wikibase via SiteStore.
* 2014: Lazy-load the data in Wikibase (
d3f2e99cb6).
* 2014: Implement the file-based cache (via T47532 and
90f6efc360fd5).
* 2015: Use local-server cache (APC), per T58602.
The file-based code was never used. The related task marked
invalid (T47532).
Change-Id: I8e2d9edcf3880149f824cc3de37793ca57435b49
Arlo Breault [Fri, 15 Mar 2019 19:41:22 +0000 (15:41 -0400)]
parser: Rename $lastSection to $lastParagraph
This now at least matches the function names even though what's actually
meant is more like 'block-level tag'. Section is a poor choice of name
since there're wikitext sections unrelated to this.
Change-Id: Ic83aff4d862800b778441c28884194480b7e7d96
Aaron Schulz [Fri, 12 Oct 2018 20:49:25 +0000 (13:49 -0700)]
Make DeferredUpdates enqueue updates that failed to run when possible
Bug: T206288
Bug: T206283
Change-Id: I6025bcc7d68cf214d291191d4044a66cdeff108b
jenkins-bot [Fri, 15 Mar 2019 19:09:57 +0000 (19:09 +0000)]
Merge "deferred: Remove deprecated CdnCacheUpdate::newSimplePurge"
Aaron Schulz [Fri, 15 Mar 2019 18:41:03 +0000 (11:41 -0700)]
rdbms: document that IDatabase::selectFieldValues() keeps the order
Change-Id: I068a938121949509fd3bf95047dffbaec41c5854
C. Scott Ananian [Fri, 15 Mar 2019 18:16:33 +0000 (14:16 -0400)]
Revert "Temporarily trim leading/trailing whitespace from parser test clauses"
This reverts commit
0363dbf98e6b71e92d439e0e2020bb388cc2aea2, since
T208070 is now merged.
Bug: T208070
Depends-On: I05511aee275238954f22db78616b19ce10cd6490
Depends-On: I120ca25a77b7b933de4afddd1d458e36a95e26da
Depends-On: I47d1d9620031036b9497cacf70b34a45c3e5f409
Depends-On: I6119b4af9632496dbda81c3a3951c55217e7c2d5
Depends-On: I584f74e2ba0d14c2975fb43cc53c5e26080e6fc7
Depends-On: Ie70e1915c172d2d67b3b8b90eb35f753b800f61e
Depends-On: I74953d5de765a2245a2999f17c7ae1cf49376bd1
Change-Id: I63f60b2e8beea9dde883c4ad65d0bd4411f93e70
Arlo Breault [Tue, 23 Oct 2018 23:26:51 +0000 (19:26 -0400)]
parser: Omit outputting newline after final line
Bug: T208070
Depends-On: I47d1d9620031036b9497cacf70b34a45c3e5f409
Depends-On: I6119b4af9632496dbda81c3a3951c55217e7c2d5
Depends-On: I584f74e2ba0d14c2975fb43cc53c5e26080e6fc7
Depends-On: Ie70e1915c172d2d67b3b8b90eb35f753b800f61e
Change-Id: I120ca25a77b7b933de4afddd1d458e36a95e26da
Arlo Breault [Tue, 23 Oct 2018 22:47:48 +0000 (18:47 -0400)]
parser: Remove trailing newline after prefixes have been cleared
Bug: T208070
Depends-On: I74953d5de765a2245a2999f17c7ae1cf49376bd1
Change-Id: I05511aee275238954f22db78616b19ce10cd6490
C. Scott Ananian [Fri, 15 Mar 2019 18:15:26 +0000 (14:15 -0400)]
Temporarily trim leading/trailing whitespace from parser test clauses
This allows us to break a circular dependency in the patches for T208070.
It will be reverted as soon as T208070 is merged.
Bug: T208070
Change-Id: I3da235cb83efa424f0cf1cf4fc7233240fcdf6b2
Aaron Schulz [Fri, 12 Oct 2018 20:45:23 +0000 (13:45 -0700)]
Split out new RefreshSecondaryDataUpdate class
Make DerivedPageDataUpdater bundle all the related DataUpdate tasks
on page change with a RefreshSecondaryDataUpdate wrapper. If one of
the DataUpdate tasks fails, then the entire bundle of updates can be
re-run in the form of enqueueing a RefreshLinksJob instance (these
jobs are idempotent). If several of the bundled tasks fail, it is easy
for DeferredUpdates to know that only one RefreshLinksJob should be
enqueued.
The goal is to make DataUpdate tasks more reliable and resilient.
Most of these deferred update failures are due to ephemeral problems
like lock contention. Since the job queue is already able to reliably
store and retry jobs, and the time that a regular web request can spend
in post-send is more limited, it makes the most sense to just enqueue
tasks as jobs if they fail post-send.
Make LinkUpdate no longer defined as enqueueable as RefreshLinksJob
since they are not very congruent (LinksUpdate only does some of the
work that RefreshLinksJob does). Only the wrapper, with the bundle of
DataUpdate instances, is congruent to RefreshLinksJob.
This change does not itself implement the enqueue-on-failure logic
in DeferredUpdates, but is merely a prerequisite.
Bug: T206288
Change-Id: I191103c1aeff4c9fedbf524ee387dad9bdf5fab8
Thiemo Kreuz [Fri, 15 Mar 2019 13:53:12 +0000 (14:53 +0100)]
Remove empty and unnecessary /* @{{ … */ comments
This was the only comment I could find that uses two curly brackets
for some reason. There are a few more with one curly bracket.
Change-Id: Iaed631916064e6be4895edd4c7a3d7de491e16c2
jenkins-bot [Fri, 15 Mar 2019 12:39:12 +0000 (12:39 +0000)]
Merge "Add /** @var SplFileInfo $fileInfo */ docs where needed"
jenkins-bot [Fri, 15 Mar 2019 10:53:42 +0000 (10:53 +0000)]
Merge "Fix ChangeTagsTest failing on Postgres"
Aaron Schulz [Fri, 15 Mar 2019 09:24:31 +0000 (02:24 -0700)]
Make EditPage::getTemplates avoid page table query spam
This changes TemplatesOnThisPageFormatter to use LinkBatch
and LinkBatch/LinkCache to manage the field.
Change-Id: I523158cdffc599d4d29bab91c98e55085130cee2
Thiemo Kreuz [Fri, 15 Mar 2019 09:10:33 +0000 (10:10 +0100)]
Fix ChangeTagsTest failing on Postgres
The order of elements returned by the SELECT is not guaranteed. But the
assertEquals() can't know this. It does not know how to identify the two
objects, other than by their array index.
Using assertArrayEquals() would fix this. But I honestly don't like this
helper method. It is expensive, for example. So I went for an ORDER BY.
An example for this failure can be seen here:
https://integration.wikimedia.org/ci/job/mediawiki-quibble-vendor-postgres-php70-docker/2484/console
Change-Id: I284d13d21b9bc34270307e78430180d94fc6665e
Aaron Schulz [Fri, 15 Mar 2019 03:43:13 +0000 (20:43 -0700)]
rdbms: lower the log channel severity of LoadMonitor::getServerStates
Change-Id: If42e3973c3a4ce5baff628befd58d4b7b3a2909b
Aaron Schulz [Thu, 14 Mar 2019 02:29:36 +0000 (19:29 -0700)]
rdbms: improve database connection loss handling
Avoid throwing errors in Database::replaceLostConnection()
Bug: T218226
Change-Id: Id07f305816c61f62aaf1ae893f5d37c03c865f46
Krinkle [Fri, 15 Mar 2019 01:16:53 +0000 (01:16 +0000)]
Merge "rdbms: make Database::query() more readable and consistent"
Timo Tijhof [Fri, 15 Mar 2019 01:16:05 +0000 (01:16 +0000)]
deferred: Remove deprecated CdnCacheUpdate::newSimplePurge
Change-Id: I4ad7429b5253b5f2d38b9380d55acf42e34e21ba
Krinkle [Fri, 15 Mar 2019 01:00:26 +0000 (01:00 +0000)]
Merge "objectcache: make BagOStuff::add() abstract to discourage non-atomic versions"
Krinkle [Fri, 15 Mar 2019 00:56:31 +0000 (00:56 +0000)]
Merge "objectcache: make the BagOStuff::add() operation more atomic for WinCache"
Krinkle [Fri, 15 Mar 2019 00:56:02 +0000 (00:56 +0000)]
Merge "objectcache: make the BagOStuff::add() operation more atomic for APC"
jenkins-bot [Fri, 15 Mar 2019 00:51:19 +0000 (00:51 +0000)]
Merge "objectcache: add BagOStuff::deleteMulti() method for consistency"
Aaron Schulz [Tue, 12 Mar 2019 10:02:24 +0000 (03:02 -0700)]
objectcache: make BagOStuff::add() abstract to discourage non-atomic versions
Change-Id: If3c3fbf21207b0c74cad8a29fa5bbabe0af896e3
Aaron Schulz [Tue, 12 Mar 2019 10:01:37 +0000 (03:01 -0700)]
objectcache: make the BagOStuff::add() operation more atomic for WinCache
Change-Id: I285ed9a7d0894adfe29b0bdc106b7518f655ba45
Aaron Schulz [Tue, 12 Mar 2019 09:49:59 +0000 (02:49 -0700)]
objectcache: make the BagOStuff::add() operation more atomic for APC
Change-Id: Ifb72b1c17439c80e6d431d5fe2ec9ad9437e3ad7
jenkins-bot [Fri, 15 Mar 2019 00:33:22 +0000 (00:33 +0000)]
Merge "user: Avoid page_touched update in User::saveSettings"
jenkins-bot [Fri, 15 Mar 2019 00:15:57 +0000 (00:15 +0000)]
Merge "Deprecate Profiler::profileIn and Profiler::profileOut stubs"
jenkins-bot [Fri, 15 Mar 2019 00:10:06 +0000 (00:10 +0000)]
Merge "filebackend: change "profiler" parameter in FileBackend so it works again"
jenkins-bot [Fri, 15 Mar 2019 00:02:35 +0000 (00:02 +0000)]
Merge "rdbms: change "profiler" argument in Database::factory so it works again"
Aaron Schulz [Thu, 14 Mar 2019 23:46:44 +0000 (16:46 -0700)]
user: Avoid page_touched update in User::saveSettings
This was added in r42179 (
65bbc147836aa) and only CDN and object caches
need purging.
Change-Id: I7ca40f8eda15ffeac3aa21aa4445b993d9fcc131
Aaron Schulz [Tue, 12 Mar 2019 07:38:56 +0000 (00:38 -0700)]
objectcache: add BagOStuff::deleteMulti() method for consistency
Also:
* Make the BagOStuff tests actually pass for memcached and sql
* Add more unit tests for BagOStuff
* Make SqlBagOStuff::add() more atomic
Change-Id: Ic1eec0990a66b595b57c646498c3bd229442230c
Aaron Schulz [Thu, 14 Mar 2019 01:56:26 +0000 (18:56 -0700)]
rdbms: make Database::query() more readable and consistent
Mainly:
* Stash trxLevel as the variable $priorTransaction since
Database::replaceLostConnection might make it 0 when called.
* Factor out Database::beginIfImplied method and call it on
each query attempt of query(), not just the first one.
* Do not bother setting STATUS_TRX_ERROR if a query fails due to
connection issues and was recoverable since requiring ROLLBACK
in order to continue has no real advantage.
* Do not bother setting trxDoneWrites/lastWriteTime for temporary
table operations.
* Make Database::handleTransactionLoss() keep TransactionProfiler
cleaner by calling Database::transactionWritingOut().
Also:
* Make sure Database::wasKnownStatementRollbackError() calls are
right after the corresponding queries so it is easy to follow.
Having connection attempts in between seems fragile.
* Rename Database::doProfiledQuery => Database::attemptQuery and
move more logic to that method.
* Factor out Database::assertNeitherReplicaNorReadOnly method.
* Rename Database::assertOpen => Database::assertHasConnectionHandle.
* Fix wording of Database::wasKnownStatementRollbackError comments.
* Use $isEffectiveWrite variable name instead of $isNonTempWrite
and $isWrite in some places.
Bug: T218226
Change-Id: I2063e4080b41d5fc504f9207a56312ce92130ed7
Aaron Schulz [Wed, 13 Mar 2019 18:18:22 +0000 (11:18 -0700)]
Deprecate Profiler::profileIn and Profiler::profileOut stubs
Change-Id: I2a8764d2464883e9fe66048e97b688c5a76d595a
Aaron Schulz [Wed, 13 Mar 2019 18:14:19 +0000 (11:14 -0700)]
filebackend: change "profiler" parameter in FileBackend so it works again
The Profiler::profileIn and Profiler::profileOut methods are just stubs.
Use a callback to the Profile::scopedProfileIn method instead.
Change-Id: I7b493c145357994f61faebfbe3f65d38d2e6da42
Aaron Schulz [Wed, 13 Mar 2019 18:11:18 +0000 (11:11 -0700)]
rdbms: change "profiler" argument in Database::factory so it works again
The Profiler::profileIn and Profiler::profileOut methods are just stubs.
Use a callback to the Profiler::scopedProfileIn method instead.
Change-Id: I16068bce583bb880250fe91235f2283453be5e4c
jenkins-bot [Thu, 14 Mar 2019 22:14:23 +0000 (22:14 +0000)]
Merge "Avoid using outdated $casToken field for BagOStuff calls"
jenkins-bot [Thu, 14 Mar 2019 22:14:18 +0000 (22:14 +0000)]
Merge "Avoid sending duplicate ProfilerOutputText comments/html"
jenkins-bot [Thu, 14 Mar 2019 21:58:58 +0000 (21:58 +0000)]
Merge "rdbms: make query exceptions include the backtrace when logged"
jenkins-bot [Thu, 14 Mar 2019 21:58:53 +0000 (21:58 +0000)]
Merge "rdbms: clarify $uniqueIndexes argument to replace()/upsert()"