Aaron Schulz has uploaded a new change for review.

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

Change subject: Reduce module_deps write slams on deployments
......................................................................

Reduce module_deps write slams on deployments

Bug: T124649
Change-Id: I8d45e538f7d3d098a89950e5777e0984c90d7e51
---
M includes/resourceloader/ResourceLoaderModule.php
1 file changed, 10 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/87/266987/1

diff --git a/includes/resourceloader/ResourceLoaderModule.php 
b/includes/resourceloader/ResourceLoaderModule.php
index 113fc84..e065f74 100644
--- a/includes/resourceloader/ResourceLoaderModule.php
+++ b/includes/resourceloader/ResourceLoaderModule.php
@@ -433,6 +433,12 @@
                try {
                        // If the list has been modified since last time we 
cached it, update the cache
                        if ( $localFileRefs !== $this->getFileDependencies( 
$context ) ) {
+                               $cache = ObjectCache::getLocalClusterInstance();
+                               $scopeLock = $cache->getScopedLock( __METHOD__, 
0 );
+                               if ( !$scopeLock ) {
+                                       return; // T124649; avoid write slams
+                               }
+
                                $vary = $context->getSkin() . '|' . 
$context->getLanguage();
                                $dbw = wfGetDB( DB_MASTER );
                                $dbw->replace( 'module_deps',
@@ -443,6 +449,10 @@
                                                'md_deps' => 
FormatJson::encode( self::getRelativePaths( $localFileRefs ) ),
                                        )
                                );
+
+                               $dbw->onTransactionIdle( function () use ( 
&$scopeLock ) {
+                                       ScopedCallback::consume( $scopeLock ); 
// release after commit
+                               } );
                        }
                } catch ( Exception $e ) {
                        wfDebugLog( 'resourceloader', __METHOD__ . ": failed to 
update DB: $e" );

-- 
To view, visit https://gerrit.wikimedia.org/r/266987
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8d45e538f7d3d098a89950e5777e0984c90d7e51
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Aaron Schulz <asch...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to