https://bugzilla.wikimedia.org/show_bug.cgi?id=67025
Bug ID: 67025 Summary: If Special:Watchlist has nothing to show to user, some warnings appear Product: MediaWiki Version: 1.24-git Hardware: All URL: https://www.mediawiki.org/wiki/Thread:Project:Support_ desk/watchlist_page_mysql_data_seek_warnings OS: All Status: NEW Keywords: easy Severity: normal Priority: Unprioritized Component: Special pages Assignee: wikibugs-l@lists.wikimedia.org Reporter: martinezn...@gmail.com Web browser: --- Mobile Platform: --- This happens on a 1.23 installation, when using the mysql (and not the mysqli) driver. mysqli is not affected. Not sure about other drivers. Backtrace: > #0 DatabaseMysql->mysqlDataSeek() called at > […/mediawiki-1.23.0/includes/db/DatabaseMysqlBase.php:377] > #1 DatabaseMysqlBase->dataSeek() called at > […/mediawiki-1.23.0/includes/specials/SpecialWatchlist.php:320] > #2 SpecialWatchlist->outputChangesList() called at > […/mediawiki-1.23.0/includes/specialpage/ChangesListSpecialPage.php:332] > #3 ChangesListSpecialPage->webOutput() called at > […/mediawiki-1.23.0/includes/specialpage/ChangesListSpecialPage.php:70] > #4 ChangesListSpecialPage->execute() called at > […/mediawiki-1.23.0/includes/specials/SpecialWatchlist.php:79] > #5 SpecialWatchlist->execute() called at > […/mediawiki-1.23.0/includes/specialpage/SpecialPage.php:379] > #6 SpecialPage->run() called at > […/mediawiki-1.23.0/includes/specialpage/SpecialPageFactory.php:503] > #7 SpecialPageFactory::executePath() called at > […/mediawiki-1.23.0/includes/Wiki.php:285] > #8 MediaWiki->performRequest() called at > […/mediawiki-1.23.0/includes/Wiki.php:588] > #9 MediaWiki->main() called at […/mediawiki-1.23.0/includes/Wiki.php:447] > #10 MediaWiki->run() called at […/mediawiki-1.23.0/index.php:46] > <br /> > <b>Warning</b>: mysql_data_seek() [<a > href='function.mysql-data-seek'>function.mysql-data-seek</a>]: Offset 0 is > invalid for MySQL result index 135 (or the query data is unbuffered) in > <b>…/mediawiki-1.23.0/includes/db/DatabaseMysql.php</b> on line <b>186</b><br > /> > #0 DatabaseMysql->mysqlDataSeek() called at > […/mediawiki-1.23.0/includes/db/DatabaseMysqlBase.php:377] > #1 DatabaseMysqlBase->dataSeek() called at > […/mediawiki-1.23.0/includes/specials/SpecialWatchlist.php:325] > #2 SpecialWatchlist->outputChangesList() called at > […/mediawiki-1.23.0/includes/specialpage/ChangesListSpecialPage.php:332] > #3 ChangesListSpecialPage->webOutput() called at > […/mediawiki-1.23.0/includes/specialpage/ChangesListSpecialPage.php:70] > #4 ChangesListSpecialPage->execute() called at > […/mediawiki-1.23.0/includes/specials/SpecialWatchlist.php:79] > #5 SpecialWatchlist->execute() called at > […/mediawiki-1.23.0/includes/specialpage/SpecialPage.php:379] > #6 SpecialPage->run() called at > […/mediawiki-1.23.0/includes/specialpage/SpecialPageFactory.php:503] > #7 SpecialPageFactory::executePath() called at > […/mediawiki-1.23.0/includes/Wiki.php:285] > #8 MediaWiki->performRequest() called at > […/mediawiki-1.23.0/includes/Wiki.php:588] > #9 MediaWiki->main() called at […/mediawiki-1.23.0/includes/Wiki.php:447] > #10 MediaWiki->run() called at […/mediawiki-1.23.0/index.php:46] > <br /> > <b>Warning</b>: mysql_data_seek() [<a > href='function.mysql-data-seek'>function.mysql-data-seek</a>]: Offset 0 is > invalid for MySQL result index 135 (or the query data is unbuffered) in > <b>…/mediawiki-1.23.0/includes/db/DatabaseMysql.php</b> on line <b>186</b><br > /> Apparently, dataSeek is being used only on this special page. Should we check for rows before calling it, or implement this check inside the function itself? $> find . -type f -exec grep -nH dataSeek {} \; ./specials/SpecialWatchlist.php:320: $dbr->dataSeek( $rows, 0 ); ./specials/SpecialWatchlist.php:325: $dbr->dataSeek( $rows, 0 ); ./db/DatabasePostgres.php:649: function dataSeek( $res, $row ) { ./db/Database.php:126: function dataSeek( $res, $row ); ./db/DatabaseOracle.php:510: function dataSeek( $res, $row ) { ./db/DatabaseSqlite.php:405: function dataSeek( $res, $row ) { ./db/DatabaseMssql.php:321: public function dataSeek( $res, $row ) { ./db/DatabaseMysqlBase.php:372: function dataSeek( $res, $row ) { ./db/DatabaseUtility.php:177: $this->db->dataSeek( $this, $row ); ./db/DatabaseUtility.php:188: $this->db->dataSeek( $this, 0 ); I've tested it myself on a local installation. -- You are receiving this mail because: You are the assignee for the bug. You are on the CC list for the bug. _______________________________________________ Wikibugs-l mailing list Wikibugs-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikibugs-l