00537: linkindex not initialized correctly

Summary: linkindex not initialized correctly
Created: 2005-09-21 08:01
Status: Closed - obsolete in 2.1.0
Category: Bug
From: Henning
Priority: 3
Version: 2.0.5
OS: Linux/Apache 2

Description: I just noticed that .linkindex is not complete. It seems individual links are omitted from otherwise correctly linked pages.

(I discovered the missing links when trying to graph my intranet with Graphviz.)

.linkindex doesn't strive to be complete -- it just tries to provide optimization hints so that (:pagelist:) has a lot less work to do when generating its lists.

Can you give some examples of missing links? And are the missing links causing the (:pagelist:) output to be incorrect...?


I see :-/

One example for a missing link was from a page DokIV.Führungsprozesse to another page DokIV.StrategieUndFührung. At first I thought it had something to do with Umlauts or with the markup - I wrote StrategieUndFührung as [[Strategie und Führung]] - but it seems that saving any change to the page added that particular link to the index.

The page in question also had a Wikitrail element, which seems to be tracked in linkindex, too. (I noticed that included pages or redirects don't show up, though.)

Using link=DokIV.StrategieUndFührung as a search parameter did not yield the backlink as a result, just the link from Main/AllRecentChanges. From (:pagelist link=DokIV.StrategieUndFührung:), I get the same results as from the search.

(In fact, there are several backlinks for that particular page that are not displayed either way.) --Henning September 21, 2005, at 12:01 PM

Out of curiosity, are you using utf-8 for your pages character sets...?

Also, just to confirm that I'm understanding correctly -- is the link from DokIV.Führungsprozesse to DokIV.StrategieUndFührung appearing or not appearing in the .linkindex file...?


I have not specifically enabled UTF-8, so I believe I don't use it. (I'm not sure of the defaults, but Umlauts have worked fine from 1.x onwards :-)

The link was not present originally. After I saved the referring page once, it appeared in the .linkindex.

I assume the phenomenon does not require special characters, as another link from SCT.SCT to SCT.CentralAdministration didn't show up either. It was added to a later version without having to save the referring page. (How are links added to the .linkindex file - each time they are loaded?) --~~~~~

(Has the behaviour of the four tildes been changed? I'm having difficulties signing some posts. --Henning September 22, 2005, at 10:57 AM)

Yes, starting in 2.0.4 one has to provide exactly three or four tildes for a signature to work, any more or less and it's not considered to be a signature. --Pm
Hm, I'm guilty of sloppy typing then. I'll have to practice tilde precision ;-) --Henning September 26, 2005, at 11:28 AM

Links are added to .linkindex

  • whenever a page is saved, .linkindex is updated with the page's new target list
  • when a link= search is performed, .linkindex is updated with new target information for any pages that .linkindex indicated could be referrers but in fact didn't refer to the desired target

So, depending on the searches and edits performed, .linkindex might be out of date. However, even if .linkindex is incomplete, one should always get correct values from the (:pagelist:) directive, with the possible exceptions of RecentChanges pages and any pages that are being modified or uploaded by something other than PmWiki's edit function.

Does this provide any clues?

Links are supposed to be added to .linkindex automatically whenever a page is saved. Of course, if some outside process changes the page file other than by going through PmWiki's edit process, then the .linkindex won't have the correct information for that page.

(All edits in my wiki use the PmWiki processes.)

I tried the following search:


This yields 2 hits. It also misses 1 link.

That's the same result I get from

 (:pagelist link=DokIV.StrategieUndFührung:)

Only after changing and saving the page with the missing link, I get this page displayed.

The same effect is evident for the page DokIV.HACCP which doesn't use any Umlauts or spaces in the name.

Hm, thinking about it, the missing link follows the pattern:

 [[HACCP |Hazard Analysis and Critical Control Points]]

Note the trailing space before the | which was introduced during the PmWiki 2.0 conversion.

Perhaps the trailing spaces confuse the search function? The other missing link follows the same pattern.

--Henning September 26, 2005, at 11:28 AM

From superficial reading of the change log, it seems the linkindex is not longer used anyway? Maybe the PITS could be closed then? --Henning June 01, 2006, at 06:02 AM

You're correct, this PITS should probably be closed. Open a new issue if the .pageindex has similar issues to the one described here for .linkindex.