Page MenuHomePhabricator

/wiki/index.php/Special:Upload Error: Cannot access parser properties before loading data
Closed, ResolvedPublicBUG REPORT

Description

This internal error appears to have happened to some users uploading image files after changing server PHP version from 7.4 to 8.0 - not sure if this is related to PHP configuration or not as it was changed through MultiPHP Manager. Most images appear to be affected but there are some that are not affected and upload normally.

Steps to replicate the issue (include links if applicable):
This is a private wiki, so login is required. Contact admin@cptdb.ca if you would like an account to troubleshoot further.

What happens?:

  • Internal error is displayed, and image does not get uploaded to wiki:
[Y3LZisPvVip5hRfZAgsjvgAAABc] /wiki/index.php/Special:Upload Error: Cannot access parser properties before loading data

Backtrace:

from /home/user/public_html/wiki/vendor/wikimedia/xmp-reader/src/Reader.php(580)
#0 /home/user/public_html/wiki/vendor/wikimedia/xmp-reader/src/Reader.php(580): XMLReader->setParserProperty(integer, boolean)
#1 /home/user/public_html/wiki/vendor/wikimedia/xmp-reader/src/Reader.php(361): Wikimedia\XMPReader\Reader->checkParseSafety(string)
#2 /home/user/public_html/wiki/includes/media/BitmapMetadataHandler.php(186): Wikimedia\XMPReader\Reader->parse(string)
#3 /home/user/public_html/wiki/includes/media/JpegHandler.php(106): BitmapMetadataHandler::Jpeg(string)
#4 /home/user/public_html/wiki/includes/media/MediaHandler.php(222): JpegHandler->getSizeAndMetadata(TrivialMediaHandlerState, string)
#5 /home/user/public_html/wiki/includes/utils/MWFileProps.php(88): MediaHandler->getSizeAndMetadataWithFallback(FSFile, string)
#6 /home/user/public_html/wiki/includes/upload/UploadBase.php(556): MWFileProps->getPropsFromPath(string, string)
#7 /home/user/public_html/wiki/includes/upload/UploadBase.php(488): UploadBase->verifyPartialFile()
#8 /home/user/public_html/wiki/includes/upload/UploadBase.php(392): UploadBase->verifyFile()
#9 /home/user/public_html/wiki/includes/upload/UploadFromFile.php(95): UploadBase->verifyUpload()
#10 /home/user/public_html/wiki/includes/specials/SpecialUpload.php(550): UploadFromFile->verifyUpload()
#11 /home/user/public_html/wiki/includes/specials/SpecialUpload.php(244): SpecialUpload->processUpload()
#12 /home/user/public_html/wiki/includes/specialpage/SpecialPage.php(671): SpecialUpload->execute(NULL)
#13 /home/user/public_html/wiki/includes/specialpage/SpecialPageFactory.php(1378): SpecialPage->run(NULL)
#14 /home/user/public_html/wiki/includes/MediaWiki.php(315): MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, RequestContext)
#15 /home/user/public_html/wiki/includes/MediaWiki.php(912): MediaWiki->performRequest()
#16 /home/user/public_html/wiki/includes/MediaWiki.php(563): MediaWiki->main()
#17 /home/user/public_html/wiki/index.php(53): MediaWiki->run()
#18 /home/user/public_html/wiki/index.php(46): wfIndexMain()
#19 {main}

What should have happened instead?:

  • Image uploads normally, and appears in Recent changes

Software version (skip for WMF-hosted wikis like Wikipedia):

  • MediaWiki 1.38.4
  • PHP 8.0.25 (litespeed)
  • MySQL 5.7.40
  • ICU 69.1

Other information (browser name/version, screenshots, etc.):

This is a private wiki, so login is required. Contact admin@cptdb.ca if you would like an account to troubleshoot further.

The following was tried but still did not allow the photo to be uploaded.

  • rename file extension from .jpeg to .jpg and attempt to re-upload
  • Use Adobe Photoshop 21 to open the original file, Save For Web to try to remove metadata, and attempt to re-upload

Event Timeline

Possible some issues in the xml reader (the error message is thrown here - https://github.com/php/php-src/blob/master/ext/xmlreader/php_xmlreader.c#L961, new issue from https://github.com/php/php-src/commit/53f89219abdea49099805562d5020d4e21785d55, which is php8.0.13)
The xml reader is trying to access something which is not in the right state

Possible fixed with the fix for T320282? (Like https://gerrit.wikimedia.org/r/c/mediawiki/libs/XMPReader/+/840214)

Master is using wikimedia/xmp-reader 0.9.0, REL1_38: wikimedia/xmp-reader 0.8.1

Can you test with the newer version? (If composer is available, Changing the version in composer.json and running composer update --no-dev could do the job, possible save the json file and vendor folder to go back easily)

Thank you so much for your response and solution!

Confirmed that I was able to upload the photo previously having issues at: https://cptdb.ca/wiki/index.php/File:Durham_Region_Transit_6122.jpg using the xmp-reader 0.9.0 version.

Steps to correct:

  1. Backed up original /public_html/wiki/vendor/composer.json file and /public_html/wiki/vendor/composer directory
  2. Edited /public_html/wiki/vendor/composer.json by changing version from "wikimedia/xmp-reader": "0.8.1", to "wikimedia/xmp-reader": "0.9.0",
  3. On command line terminal, from the /public_html/wiki/vendor directory ran command
composer update --no-dev

Output was:

Loading composer repositories with package information
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies
Lock file operations: 0 installs, 1 update, 0 removals
  - Upgrading wikimedia/xmp-reader (0.8.1 => 0.9.0)
Writing lock file
Installing dependencies from lock file
Package operations: 0 installs, 1 update, 0 removals
  - Downloading wikimedia/xmp-reader (0.9.0)
  - Upgrading wikimedia/xmp-reader (0.8.1 => 0.9.0): Extracting archive
Generating optimized autoload files
9 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
  1. Re-tried uploading affected .jpg file and it uploaded successfully.

I will ask others to try again to see if it is still being experienced. Thank you again!

Others confirmed they are able to upload images without issue after changing to xmp-reader 0.9.0
Thanks again!

Umherirrender added a subscriber: Reedy.

Others confirmed they are able to upload images without issue after changing to xmp-reader 0.9.0
Thanks again!

That sounds very good!

Next steps would be to update xmp-reader for better php8 support on the releases.

A new version of xmp-reader needs backporting to REL1_38 (currently at 0.8.1), maybe REL1_37 (at 0.8.1) and REL1_35 (at 0.7.0) as well. REL1_39 is already upgraded https://gerrit.wikimedia.org/r/c/mediawiki/core/+/844990
Version 0.8.5 seems fine for that, because it not updated to require php7.4
Not sure if just backporting the update patch set would work, so it would be nice to get helper here from the release team. Thanks.

Change 859473 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/vendor@REL1_38] Upgrading wikimedia/xmp-reader (0.8.1 => 0.8.5)

https://gerrit.wikimedia.org/r/859473

Change 859474 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/vendor@REL1_37] Upgrading wikimedia/xmp-reader (0.8.1 => 0.8.5)

https://gerrit.wikimedia.org/r/859474

Change 859475 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/vendor@REL1_35] Upgrading wikimedia/xmp-reader (0.8.1 => 0.8.5)

https://gerrit.wikimedia.org/r/859475

Change 859476 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/core@REL1_38] Upgrading wikimedia/xmp-reader (0.8.1 => 0.8.5)

https://gerrit.wikimedia.org/r/859476

Change 859477 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/core@REL1_37] Upgrading wikimedia/xmp-reader (0.8.1 => 0.8.5)

https://gerrit.wikimedia.org/r/859477

Change 859478 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/core@REL1_35] Upgrading wikimedia/xmp-reader (0.7.0 => 0.8.5)

https://gerrit.wikimedia.org/r/859478

Change 859473 merged by Reedy:

[mediawiki/vendor@REL1_38] Upgrading wikimedia/xmp-reader (0.8.1 => 0.8.5)

https://gerrit.wikimedia.org/r/859473

Change 859474 merged by Reedy:

[mediawiki/vendor@REL1_37] Upgrading wikimedia/xmp-reader (0.8.1 => 0.8.5)

https://gerrit.wikimedia.org/r/859474

Change 859475 merged by Reedy:

[mediawiki/vendor@REL1_35] Upgrading wikimedia/xmp-reader (0.7.0 => 0.8.5)

https://gerrit.wikimedia.org/r/859475

Change 859476 merged by Reedy:

[mediawiki/core@REL1_38] Upgrading wikimedia/xmp-reader (0.8.1 => 0.8.5)

https://gerrit.wikimedia.org/r/859476

Change 859477 merged by Reedy:

[mediawiki/core@REL1_37] Upgrading wikimedia/xmp-reader (0.8.1 => 0.8.5)

https://gerrit.wikimedia.org/r/859477

Change 859478 merged by Reedy:

[mediawiki/core@REL1_35] Upgrading wikimedia/xmp-reader (0.7.0 => 0.8.5)

https://gerrit.wikimedia.org/r/859478