Topic on Project:Support desk

Most Special:SpecialPages will not load after upgrade

9
Brian.unc (talkcontribs)

After upgrading from 1.31 to 1.37, I am unable to get into Special:SpecialPages, but the rest of the site seems to be working fine, including the ability to Log In, view Version, and even to reset the password, which is Special:PasswordReset. This is the error:

Warning: require(/opt/app-root/src/includes/specials/SpecialDeadendPages.php): failed to open stream: No such file or directory in /opt/app-root/src/includes/AutoLoader.php on line 117

Fatal error: require(): Failed opening required '/opt/app-root/src/includes/specials/SpecialDeadendPages.php' (include_path='/opt/app-root/src/vendor/pear/console_getopt:/opt/app-root/src/vendor/pear/mail:/opt/app-root/src/vendor/pear/mail_mime:/opt/app-root/src/vendor/pear/net_smtp:/opt/app-root/src/vendor/pear/net_socket:/opt/app-root/src/vendor/pear/net_url2:/opt/app-root/src/vendor/pear/pear-core-minimal/src:/opt/app-root/src/vendor/pear/pear_exception:.:/opt/app-root/src:/usr/share/pear') in /opt/app-root/src/includes/AutoLoader.php on line 117

Here's my version info: https://www.coraldigest.org/index.php/Special:Version

This is hosted on in a RedHat OpenShift environment at my University. I've had issues before, mostly related to Composer, and it could be that it's here again.

To build this, I downloaded the 1.37 zip folder, unzipped, copied in my LocalSetting.php and images directory, removed mw-config, and updated the Tweeki skin. I then send it on to a private repository that triggers the build on OpenShift. After the initial build, I ran the maintenance/update.php script to update the database.

Any thoughts on how I can overcome this issue, as I need to be able to manage the site once logged in. Thanks!

Seb35 (talkcontribs)

When Special:SpecialPages crashes, it is generally the fault of an extension providing a special page and the given special page fails to initialise. Here it seems to be Special:DeadendPages, which is a core special page.

It seems unlikely to be related to Composer since this file is managed by the core of MediaWiki and its autoloader (/opt/app-root/src/includes/AutoLoader.php and a list of classes in /opt/app-root/src/autoload.php).

Did you verify the file /opt/app-root/src/includes/specials/SpecialDeadendPages.php is really present? (possibly removed by mistake?)

Other PHP files for special pages seems to be missing: Special:ShortPages, Special:UncategorizedPages, and possibly others.

Bawolff (talkcontribs)

Sometimes this happens if you extract a new version of mediawiki on top of an old one, and have a mix of files from both versions present.

I would suggest reinstalling mediawiki into a clean directory (keeping LocalSettings.php, images, and extensions directories of course)

Brian.unc (talkcontribs)

It was a clean install, aside from images and LocalSettings.php. I have checked to verify that Special:DeadendPages and the others that have failed are, indeed, present. I will try another clean install to see if that helps.

Bawolff (talkcontribs)

You verified that /opt/app-root/src/includes/specials/SpecialDeadendPages.php was present? (With that exact case and spelling?)


It would be very odd to get that error message if the file was actually present.

Brian.unc (talkcontribs)

Yes, it's there... I started wondering if somehow the directory wasn't readable, but that wasn't the case, either.

Bawolff (talkcontribs)

Could it be selinux related? Although i would expect a different error.

Brian.unc (talkcontribs)

OK, a completely new redeploy has fixed the error. I believe that there were some artifacts left over from the previous installation in my repository that I did not properly clean up using git rm that created the strange behavior. Lesson to all - make sure you keep your git repositories clean!

Seb35 (talkcontribs)

Indeed, probably a security feature. If not linked to SELinux, it could be the PHP parameter open_basedir.

(I replied before seeing the last answer -- can be ignored then.)