Force READ_LATEST for User::newFromId() if writes had been done
authorBrad Jorsch <bjorsch@wikimedia.org>
Fri, 23 Feb 2018 18:25:10 +0000 (13:25 -0500)
committerAaron Schulz <aschulz@wikimedia.org>
Sat, 24 Feb 2018 00:00:17 +0000 (00:00 +0000)
The User::newFromName() case already does this, there seems to be no
reason not to do it for User::newFromId() too.

Bug: T188014
Change-Id: Ic7fdef0cc1f5750cb5e6b2a7f48f1549862b41cb

includes/user/User.php

index c614111..b5106ed 100644 (file)
@@ -406,6 +406,15 @@ class User implements IDBAccessObject, UserIdentity {
                                }
                                break;
                        case 'id':
+                               // Make sure this thread sees its own changes, if the ID isn't 0
+                               if ( $this->mId != 0 ) {
+                                       $lb = MediaWikiServices::getInstance()->getDBLoadBalancer();
+                                       if ( $lb->hasOrMadeRecentMasterChanges() ) {
+                                               $flags |= self::READ_LATEST;
+                                               $this->queryFlagsUsed = $flags;
+                                       }
+                               }
+
                                $this->loadFromId( $flags );
                                break;
                        case 'actor':