X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=maintenance%2FupdateSpecialPages.php;h=cc9f763bc8d355101ca5ecc25ba3fff4af7ad00a;hp=5ea3828214ac5157036ed83ebdd63d1c7a0a5b0e;hb=67f04373d6d4fe5295b0823ac47944e20a649bfd;hpb=756f1f6aa2bed0a5e5fcf5d5945f7df8a9dd2991 diff --git a/maintenance/updateSpecialPages.php b/maintenance/updateSpecialPages.php index 5ea3828214..cc9f763bc8 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->reopenAndWaitFotReplicas(); } 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 reopenAndWaiFotReplicas() { + 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(); } } }