Topic on Extension talk:TimedMediaHandler

Fatal error: Call to undefined method ForeignDBRepo::fetchImageQuery

5
Wp mirror (talkcontribs)

Dear Sir,

0) Background

I develop WP-MIRROR which is a utility for building a set of mirrors of WMF wikis. Home: <http://http://www.nongnu.org/wp-mirror/>. For WP-MIRROR 0.7, my objective is this: A wiki page rendered by the mirror site, should look the same as that page rendered by the WMF site. Version 0.6 fell short in this regard because: a) it depends upon the DEB package for MediaWiki 1.19 LTS which is not able to render many features that were introduced in 2013 (e.g. wikidata, scribunto, ...); and b) it depends upon several DEB packages for extensions compatible with 1.19 LTS which do not include many extensions currently used by WMF (e.g. math w/ mathjax, score, timeline, timedmediahandler, etc.)

In support of this objective, I am preparing a DEB package of MediaWiki 1.23alpha, and a DEB package of most of the extensions listed on <http://en.wikipedia.org/wiki/Special:Version>. So far I have packaged a couple dozen extensions with good results, but have hit a snag with TimedMediaHandler.

1) Mirror

1.1) WP-MIRROR builds a mirror of <http://simple.wikipedia.org/> out of the box using dump files from <http://ftpmirror.your.org>.

1.2) For MediaWiki, I am using the latest `git pull' from the GIT repository <https://gerrit.wikimedia.org/r/p/mediawiki/core.git>. For MediaWiki extensions, I am using the latest `git pull' from the GIT repositories under <https://gerrit.wikimedia.org/r/p/mediawiki/extensions/>. MwEmbedSupport and TimedMediaHandler are installed and configured as per the README.

1.3) As Debian dependencies, I have installed: cortado 0.6.0-1, ffmpeg 6:0.8.10-1, fmpeg2theora 0.27-2, imagemagick 8:6.7.7.10-5+deb7u2, libav-tools 6:0.8.10-1, libvpx1 1.1.0-1, oggvideotools 0.8a-1, php5-cli 5.4.4-14+deb7u7, php-getid3 1.9.3-1, php-pear 5.4.4-14+deb7u7.

1.4) `LocalSettings.php' contains:

...
require_once( "$IP/extensions/MwEmbedSupport/MwEmbedSupport.php" );
require_once( "$IP/extensions/TimedMediaHandler/TimedMediaHandler.php" );
ini_set( 'include_path',
	 ".:$IP:$IP/includes:$IP/languages:/usr/share/php" . 
	 PATH_SEPARATOR . 
	 ini_get( 'include_path' ) ); 
$wgVideoPlayerSkin      = 'kskin'; 
$wgEnableTranscode      = true; 
$wgEnableNiceBackgroundTranscodeJobs = true; 
$wgFFmpeg2theoraLocation= '/usr/bin/ffmpeg2theora'; 
$wgFFmpegLocation       = '/usr/bin/avconv'; 
$wgOggThumbLocation     = '/usr/bin/oggThumb'; 
...

2) Testing

Special pages all work: <http://simple.wikipedia.site/wiki/Special:Version>, <http://simple.wikipedia.site/wiki/Special:TimedMediaHandler>, <http://simple.wikipedia.site/wiki/Special:FileList>.

Most ordinary pages display properly: <http://simple.wikipedia.site/wiki/Apple>.

3) Errors

Ordinary pages with OGV files render as blank. Two examples:

3.1) Use Firefox to view: <http://simple.wikipedia.site/wiki/Burnout> Error message in `/var/log/apache2/wp-mirror.site-error.log':
[Wed Feb 26 12:17:30 2014] [error] [client ::1] PHP Fatal error: Call to a member function doTransform() on a non-object in /usr/share/wp-mirror-mediawiki/extensions/TimedMediaHandler/TimedMediaThumbnail.php on line 201

3.2) Use Firefox to view: <http://simple.wikipedia.site/wiki/Sintel> Error message in `/var/log/apache2/wp-mirror.site-error.log':
[Wed Feb 26 11:04:41 2014] [error] [client ::1] PHP Fatal error: Call to undefined method ForeignDBRepo::fetchImageQuery() in /usr/share/wp-mirror-mediawiki/extensions/TimedMediaHandler/WebVideoTranscode/WebVideoTranscode.php on line 396

Under `/tmp/', can be found many files like `/tmp/transform-aaaabbbbcccc-1.jpg', where the string `aaaabbbbcccc' is composed of hexadecimal characters.

4) Request

Any advise would be appreciated. I am now reading the code but do not yet grasp where the problem is; hence this note.

If this is not the right location to write such a note, please let me know if there is an appropriate mailing list.

Sincerely Yours,
Kent

Hardware: x86x64, 6G DRAM
OS: Linux 3.2.0-4-amd64 #1 SMP Debian 3.2.46-1 x86_64 GNU/Linux
Distribution: Debian 7.4 (wheezy), with back-ports
MediaWiki: most recent version (1.23alpha) obtained from GIT repository
Extensions: most recent versions obtained from GIT repository

Bawolff (talkcontribs)

Its a bug in TimedMediaHandler. TimedMediaHandler isn't compatible with ForeignDBRepo based image stores. Try using ForeignDBViaLBRepo instead (They're basically the same, One just uses a $wgLBFactoryConf instead).

Issue filed as bugzilla:61986

Wp mirror (talkcontribs)
DonPaolo (talkcontribs)

@Bawolff Could you explain better your solution? DonPaolo (talk) 20:36, 10 July 2020 (UTC)

Bawolff (talkcontribs)
Reply to "Fatal error: Call to undefined method ForeignDBRepo::fetchImageQuery"