public function __construct( BagOStuff $store, array $client, $posTime = null ) {
$this->store = $store;
$this->clientId = md5( $client['ip'] . "\n" . $client['agent'] );
- $this->key = $store->makeGlobalKey( __CLASS__, $this->clientId );
+ $this->key = $store->makeGlobalKey( __CLASS__, $this->clientId, 'v1' );
$this->waitForPosTime = $posTime;
$this->logger = new NullLogger();
}
$min = null;
foreach ( $data['positions'] as $pos ) {
- /** @var DBMasterPos $pos */
- $min = $min ? min( $pos->asOfTime(), $min ) : $pos->asOfTime();
+ if ( $pos instanceof DBMasterPos ) {
+ $min = $min ? min( $pos->asOfTime(), $min ) : $pos->asOfTime();
+ }
}
return $min;
$curPositions = $curValue['positions'];
// Use the newest positions for each DB master
foreach ( $shutdownPositions as $db => $pos ) {
- if ( !isset( $curPositions[$db] )
- || $pos->asOfTime() > $curPositions[$db]->asOfTime()
+ if (
+ !isset( $curPositions[$db] ) ||
+ !( $curPositions[$db] instanceof DBMasterPos ) ||
+ $pos->asOfTime() > $curPositions[$db]->asOfTime()
) {
$curPositions[$db] = $pos;
}