X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FupdateSpecialPages.php;h=e2c0c61592b074b1251e007e100c26bf1fa991a2;hb=fea3bbcdae4f052f769ab466df6e1f5d47d1383c;hp=5ea3828214ac5157036ed83ebdd63d1c7a0a5b0e;hpb=314058b0d0b8aad36b82ff0b7df2c52c89a475d1;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/updateSpecialPages.php b/maintenance/updateSpecialPages.php index 5ea3828214..e2c0c61592 100644 --- a/maintenance/updateSpecialPages.php +++ b/maintenance/updateSpecialPages.php @@ -101,16 +101,7 @@ class UpdateSpecialPages extends Maintenance { $this->output( sprintf( "%.2fs\n", $seconds ) ); } # Reopen any connections that have closed - if ( !wfGetLB()->pingAll() ) { - $this->output( "\n" ); - do { - $this->error( "Connection failed, reconnecting in 10 seconds..." ); - sleep( 10 ); - } while ( !wfGetLB()->pingAll() ); - $this->output( "Reconnected\n\n" ); - } - # Wait for the replica DB to catch up - wfWaitForSlaves(); + $this->reopenAndWaitForReplicas(); } else { $this->output( "cheap, skipped\n" ); } @@ -121,6 +112,25 @@ class UpdateSpecialPages extends Maintenance { } } + /** + * Re-open any closed db connection, and wait for replicas + * + * Queries that take a really long time, might cause the + * mysql connection to "go away" + */ + private function reopenAndWaitForReplicas() { + if ( !wfGetLB()->pingAll() ) { + $this->output( "\n" ); + do { + $this->error( "Connection failed, reconnecting in 10 seconds..." ); + sleep( 10 ); + } while ( !wfGetLB()->pingAll() ); + $this->output( "Reconnected\n\n" ); + } + # Wait for the replica DB to catch up + wfWaitForSlaves(); + } + public function doSpecialPageCacheUpdates( $dbw ) { global $wgSpecialPageCacheUpdates; @@ -154,7 +164,7 @@ class UpdateSpecialPages extends Maintenance { } $this->output( sprintf( "%.2fs\n", $seconds ) ); # Wait for the replica DB to catch up - wfWaitForSlaves(); + $this->reopenAndWaitForReplicas(); } } }