My wiki is missing a bunch of pages. I think it's specifically the pages that only had one revision. Possibly only if that revision was very old.
Here's an example page: https://www.qbwiki.com/wiki/St._Anne%27s . It says there's no text in this page, but the page
, revision
, and text
tables all seem to have the right data.
Other observations:
- The page header has "Read", "Edit", and "View History" tabs, as opposed to a page that really doesn't exist, which only has "Create"
- Editing the page displays
- The revision #0 of the page named "St. Anne's" does not exist.
- This is usually caused by following an outdated history link to a page that has been deleted. Details can be found in the deletion log.
(but the deletion log doesn't show anything)
- When I try to save an edit, I am told there is an edit conflict ("Someone else has changed this page since you started editing it.")
- I can delete the page and then re-create it
- I fiddled around with the PHP code to see where the error text was coming from. It's
Article.php
line 436, in thefetchRevisionRecord()
method:
// $this->mRevision might already be fetched by getOldIDFromRequest() if ( !$this->mRevision ) { if ( !$oldid ) { $this->mRevision = $this->mPage->getRevision(); if ( !$this->mRevision ) { wfDebug( __METHOD__ . " failed to find page data for title " . $this->getTitle()->getPrefixedText() . "\n" ); // Just for sanity, output for this case is done by showMissingArticle(). $this->fetchResult = Status::newFatal( 'noarticletext' ); $this->applyContentOverride( $this->makeFetchErrorContent() ); return null; } …
But I don't know enough about how MediaWiki works (or PHP in general, really) to figure out what's going wrong.
This problem likely started after an upgrade that I struggled with. Unfortunately, I didn't notice this problem until long after the upgrade, and when I finished the upgrade I had thought everything turned out okay, so I don't remember exactly what went wrong.
The upshot is that there are a bunch of pages (this was just one example) whose contents exist in the database but can't be accessed through the website. I'm not sure even how to systematically identify such pages. I suspect some rows or values are just missing from some table(s), but I have no clue which or how to find out.
Thoughts?