Undefined index: <some image filename> in /srv/mediawiki/php-1.28.0-wmf.14/extensions/Score/Score.body.php on line 441
|mediawiki/extensions/Score : master||Check for PNG metadata before generating HTML|
Looks like this can happen when $existingFiles[$imageFileName] is set but $metaData[$imageFileName] is not. I mean we could easily check for isset() and throw exceptions or something, but it seems a little deeper than that. Someone who knows this extension should have a look.
I'm getting this error after disabling SVG in Vagrant. The PNGs are used in its place, but as the size values in the metadata file are for the vector file, it fails to find the PNG size. There must always be a metadata file, as without one, the score is regenerated (always with one), but if it exists, there are no checks for equivalence. Fixing this part, I added a check for the size in the logic for whether to generate the files. The file is then re-made. I can't find any way for the data to be wrongly stored.
The issue was introduced with rESCRcc6a86d0c084: Pass length of ogg file to TimedMediaTransformOutput, part of the fix for T49533, but without any mention of the addition of image dimension calculation. However, they check for the length value, and re-generate if not found. The fix seems to just be to force regeneration if not found.
There also shouldn't be such problems with SVG. As the dimensions are embedded in the image file itself, if the value is needed (needless to say, there had been no discussion that it was needed for PNG), it can be found from within, removing a step where things can go wrong. I'll just make myself a note to remove its use with images in T49578: Score should output SVG. I've also made T181958: TimedMediaHandler should handle OGG/Vorbis length efficiently to get rid of the metadata file in its entirety.