http://www.mediawiki.org/wiki/Special:Code/MediaWiki/95929

Revision: 95929
Author:   kaldari
Date:     2011-09-01 01:32:29 +0000 (Thu, 01 Sep 2011)
Log Message:
-----------
fix for a concurrency issue when logging

Modified Paths:
--------------
    trunk/extensions/CentralNotice/CentralNotice.db.php
    trunk/extensions/CentralNotice/special/SpecialNoticeTemplate.php

Modified: trunk/extensions/CentralNotice/CentralNotice.db.php
===================================================================
--- trunk/extensions/CentralNotice/CentralNotice.db.php 2011-09-01 01:18:40 UTC 
(rev 95928)
+++ trunk/extensions/CentralNotice/CentralNotice.db.php 2011-09-01 01:32:29 UTC 
(rev 95929)
@@ -243,14 +243,20 @@
        /**
         * Return settings for a banner
         * @param $bannerName string name of banner
+        * @param $logging boolean whether or not request is for logging 
(optional)
         * @return an array of banner settings
         */
-       static function getBannerSettings( $bannerName ) {
+       static function getBannerSettings( $bannerName, $logging = false ) {
                global $wgCentralDBname;
                
                $banner = array();
                
-               $dbr = wfGetDB( DB_SLAVE, array(), $wgCentralDBname );
+               // If logging, read from the master database to avoid 
concurrency problems
+               if ( $logging ) {
+                       $dbr = wfGetDB( DB_MASTER, array(), $wgCentralDBname );
+               } else {
+                       $dbr = wfGetDB( DB_SLAVE, array(), $wgCentralDBname );
+               }
                
                $row = $dbr->selectRow( 'cn_templates',
                        array(

Modified: trunk/extensions/CentralNotice/special/SpecialNoticeTemplate.php
===================================================================
--- trunk/extensions/CentralNotice/special/SpecialNoticeTemplate.php    
2011-09-01 01:18:40 UTC (rev 95928)
+++ trunk/extensions/CentralNotice/special/SpecialNoticeTemplate.php    
2011-09-01 01:32:29 UTC (rev 95929)
@@ -850,7 +850,7 @@
                        return;
                }
                
-               $initialBannerSettings = CentralNoticeDB::getBannerSettings( 
$name );
+               $initialBannerSettings = CentralNoticeDB::getBannerSettings( 
$name, true );
 
                $dbr = wfGetDB( DB_SLAVE );
                $res = $dbr->select( 'cn_templates', 'tmp_name',
@@ -892,7 +892,7 @@
                        }
                        
                        $bannerId = SpecialNoticeTemplate::getTemplateId( $name 
);
-                       $finalBannerSettings = 
CentralNoticeDB::getBannerSettings( $name );
+                       $finalBannerSettings = 
CentralNoticeDB::getBannerSettings( $name, true );
                        $this->logBannerChange( 'modified', $bannerId, 
$initialBannerSettings, $finalBannerSettings, $contentChanged);
                        
                        return;


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to