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