2) WatchedItemStoreIntegrationTest::testUpdateResetAndSetNotificationTimestamp Failed asserting that ResultWrapper Object &000000004aa6b9340000000032c030bf ( 'result' => Array &0 () 'db' => DatabaseSqlite Object &000000004aa6f7fc0000000032c030bf ( 'dbDir' => '/home/km/projects/vagrant/mediawiki/data' 'dbPath' => '/home/km/projects/vagrant/mediawiki/data/my_wiki.sqlite' 'trxMode' => null 'mAffectedRows' => 1 'mLastResult' => null 'mConn' => PDO Object &000000004aa6f7fb0000000032c030bf () 'lockMgr' => FSLockManager Object &000000004aa6f7f90000000032c030bf ( 'lockTypeMap' => Array &1 ( 1 => 1 2 => 1 3 => 3 ) 'lockDir' => '/home/km/projects/vagrant/mediawiki/data/locks' 'handles' => Array &1 'locksHeld' => Array &1 'domain' => 'my_wiki' 'lockTTL' => 3600 ) 'mLastQuery' => 'UPDATE unittest_watchlist SET wl_notificationtimestamp = '20200202020202' WHERE wl_user = '16' AND ((wl_namespace = '0' AND wl_title = 'WatchedItemStoreIntegrationTestPage'))' 'mDoneWrites' => 1469746890.4177001 'mPHPError' => false 'mServer' => null 'mUser' => null 'mPassword' => null 'mDBname' => 'my_wiki' 'srvCache' => APCBagOStuff Object &000000004aa6e6e80000000032c030bf ( 'nativeSerialize' => true 'locks' => Array &2 () 'lastError' => 0 'keyspace' => 'my_wiki' 'logger' => MediaWiki\Logger\LegacyLogger Object &000000004aa6e6e90000000032c030bf ( 'channel' => 'objectcache' ) 'asyncHandler' => 'DeferredUpdates::addCallableUpdate' 'debugMode' => false 'duplicateKeyLookups' => Array &2 'reportDupes' => false 'dupeTrackScheduled' => false ) 'mOpened' => true 'mTrxIdleCallbacks' => Array &3 () 'mTrxPreCommitCallbacks' => Array &3 'mTrxEndCallbacks' => Array &3 'mTablePrefix' => 'unittest_' 'mSchema' => null 'mFlags' => 16 'mForeign' => false 'mLBInfo' => Array &3 'mDefaultBigSelects' => null 'mSchemaVars' => false 'mSessionVars' => Array &3 'preparedArgs' => null 'htmlErrors' => null 'delimiter' => ';' 'mTrxLevel' => 0 'mTrxShortId' => 'ea792a465bca' 'mTrxTimestamp' => 1469746890.3296931 'mTrxSlaveLag' => 1.1920928955078125E-6 'mTrxFname' => 'DatabaseBase::onTransactionPreCommitOrIdle' 'mTrxDoneWrites' => false 'mTrxAutomatic' => false 'mTrxAtomicLevels' => Array &3 'mTrxAutomaticAtomic' => false 'mTrxWriteCallers' => Array &3 'mTrxWriteDuration' => 0.0 'mNamedLocksHeld' => Array &3 'lazyMasterHandle' => DBConnRef Object &000000004aa6f7f70000000032c030bf ( 'lb' => LoadBalancer Object &000000004aa6f7fe0000000032c030bf ( 'mServers' => Array &4 ( 0 => Array &5 ( 'host' => '' 'user' => '' 'password' => '' 'dbname' => 'my_wiki' 'type' => 'sqlite' 'load' => 1 'flags' => 16 'master' => true ) ) 'mConns' => Array &4 'mLoads' => Array &4 'mGroupLoads' => null 'mAllowLagged' => false 'mWaitTimeout' => 10 'mParentInfo' => Array &4 'mLoadMonitorClass' => 'LoadMonitorNull' 'mLoadMonitor' => null 'srvCache' => APCBagOStuff Object &000000004aa6e6e80000000032c030bf 'mErrorConnection' => false 'mReadIndex' => -1 'mWaitForPos' => false 'laggedSlaveMode' => false 'slavesDownMode' => false 'mLastError' => 'Unknown error' 'readOnlyReason' => false 'connsOpened' => 1 'trxProfiler' => TransactionProfiler Object &000000004aa6e6e30000000032c030bf ( 'dbLockThreshold' => 3.0 'eventThreshold' => 0.25 'dbTrxHoldingLocks' => Array &6 () 'dbTrxMethodTimes' => Array &6 'hits' => Array &6 'expect' => Array &6 'expectBy' => Array &6 'logger' => MediaWiki\Logger\LegacyLogger Object &000000004aa6bb9a0000000032c030bf ( 'channel' => 'DBPerformance' ) ) 'disabled' => false 'mWriteIndex' => -1 ) 'conn' => null 'params' => Array &7 ( 0 => -2 1 => Array &8 () 2 => 'my_wiki' ) ) 'fileHandle' => null 'allViews' => null 'trxProfiler' => TransactionProfiler Object &000000004aa6e6e30000000032c030bf '_hasDataForTestClass' => 'WatchedItemStoreIntegrationTest' ) 'pos' => 0 'currentRow' => null ) is true. /home/km/projects/vagrant/mediawiki/tests/phpunit/includes/WatchedItemStoreIntegrationTest.php:178 /home/km/projects/vagrant/mediawiki/tests/phpunit/MediaWikiTestCase.php:389
Description
Description
Event Timeline
Comment Actions
So this is triggered from WatchedItemStore::setNotificationTimestampsForUser line 709 which reads:
$success = $dbw->update( 'watchlist', [ 'wl_notificationtimestamp' => $timestamp ], $conds, __METHOD__ );
$success is essentially what is checked by this test.
IDatabase::update is documented as always returning a bool, but apparently this is not the case!
Comment Actions
And looking at all update methods a ResultWrapper Object should never be returned? unless I am missing something...
Comment Actions
Tentatively marking as resolved given we have an sqlite Jenkins job now on each commit, and it is passing.