Avoid CAS errors on double post to ApiOptions
Bug: T95839 Change-Id: I62f8eea31164be1ab0eacf31c494f0b296b367f2
This commit is contained in:
parent
9a3c7b43ea
commit
ece85dd20f
2 changed files with 4 additions and 7 deletions
|
|
@ -1203,18 +1203,15 @@ class User implements IDBAccessObject {
|
|||
return false;
|
||||
}
|
||||
|
||||
$db = ( $flags & self::READ_LATEST )
|
||||
? wfGetDB( DB_MASTER )
|
||||
: wfGetDB( DB_SLAVE );
|
||||
list( $index, $options ) = DBAccessObjectUtils::getDBOptions( $flags );
|
||||
$db = wfGetDB( $index );
|
||||
|
||||
$s = $db->selectRow(
|
||||
'user',
|
||||
self::selectFields(),
|
||||
array( 'user_id' => $this->mId ),
|
||||
__METHOD__,
|
||||
( ( $flags & self::READ_LOCKING ) == self::READ_LOCKING )
|
||||
? array( 'LOCK IN SHARE MODE' )
|
||||
: array()
|
||||
$options
|
||||
);
|
||||
|
||||
$this->queryFlagsUsed = $flags;
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ class ApiOptions extends ApiBase {
|
|||
// Load the user from the master to reduce CAS errors on double post (T95839)
|
||||
if ( wfGetLB()->getServerCount() > 1 ) {
|
||||
$user = User::newFromId( $user->getId() );
|
||||
if ( !$user->loadFromId( User::READ_LATEST ) ) {
|
||||
if ( !$user->loadFromId( User::READ_EXCLUSIVE ) ) {
|
||||
$this->dieUsage( 'Anonymous users cannot change preferences', 'notloggedin' );
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue