IDOL - Case of corrupted index
Posted by Kimmo Pyhältö (M-Files) on 18 December 2019 12:21 PM
IDOL index might get corrupted if the data flow especially during indexing is disturbed. This might be the case for example when the server machine is restarted unexpectedly. The corrupted index might behave strangely and it might be hard to diagnose the actual reason if the index is actually corrupted. We have experienced this issue only with IDOL 10.9, but these instructions also consider the issue in IDOL 12.x.
This document describes how to identify the corrupted index and how to resolve it.
NOTE! Using this document requires basic understanding of IDOL components and terminology.
1. How to identify corrupted IDOL index
Usually the problem first appears by the end-user not able to use the search. Then, when looking at M-Files server Windows Event Viewer log, you might see following errors:
The M-Files indexer failed to index the vault: "5SD345E8-003E-4744-9119-O9055A289824".
Checking for the existence of the IDOL database failed.
When checking IDOL side you notice that some content engine process is shut down and it cannot be started.
Looking at the engines content_application.log you see a line like this:
17/12/2019 08:25:05  99-Always: "E:\Single9\IDOLServer\IDOL\content\main/xmln.db" is invalid. Exiting.
That line confirms that the index is corrupted.
To further examine, what has caused the corruption it is good to check IDOL server's Windows Event Viewer log for shutdowns. There might be for example something like this:
"The previous system shutdown at 15:01:09 on 16.12.2019 was unexpected."
That unexpected shutdown might well be the root cause for the corrupted index.
2. How to resolve the corrupted IDOL index
If the inspection shows that the index really is corrupted the first thing is to get the content engine running again. Xmln.db is one of IDOL databases that cannot be regenerated and it prevents the engine from starting if it is corrupted.
In IDOL 10.9 some folders and files under C:\Single9\IDOLServer\IDOL\content needs to be removed in order to get the engine running again. Remove everything, except following:
- Folders: license and uid
You can use following PowerShell script to remove the necessary items automatically.
Remove-Item -path C:\Single9\IDOLServer\IDOL\content\* -recurse -exclude license,uid,admin.dat,autn_ntres.dll,autnxslt.dll,content.exe,content.lck,licensekey.dat,portinfo.dat
In IDOL 12.x the index data is separated from the program data so it should be adequate to remove the contents of the folder C:\IDOL12\data\Minimum-content-9000\index.
After starting the engine, you have to either restore index from backups or reindex the vault.