Segmentation fault (core dumped) in searchindex.php Skript von vBulletin 4

Über das Skript searchindex.php aus dem do_not_upload Ordner lässt sich der Suchindex auf der Kommandozeile reparieren bzw. neu aufbauen. Im Gegensatz zum Adminbereich funktioniert das wesentlich schneller, vor allem bei größeren Installationen mit mehreren hunderttausenden Beiträgen. Dies funktionierte allerdings unter meiner Docker-Installation nicht. Nach dem Treffen der Auswahl 1 zur bereinigenden Löschung des alten Index erscheint eine Liste aller möglichen Indizes. Bevor hier eine Auswahl getroffen werden kann, bricht das Skript mit Segmentation fault (core dumped) ab:

# php searchindex.php
Please enter the path to your vBulletin directory: /www
Suchindex neu erstellen
-----------------------
Hinweis: Wenn Sie den Index neu erstellen, sollten Sie den bestehenden vorher l▒schen. Suchindex l▒schen
Empty Index [0/1,Default=0]: 1

0) Alle
3) Foren
1) Beitr▒ge
11) Pinnwandeintr▒ge
20) Blog Comments
19) Blog Entries
Segmentation fault (core dumped)

Generell handelt es sich dabei um ein Speicherproblem: Das Programm versucht auf Speicher zuzugreifen, der ihm nicht gehört. An zu wenig RAM liegt es definitiv nicht. Die Auslastung war zum Zeitpunkt der Ausführung moderat, und auch eine Erhöhung des mem_limits vom Container änderte nichts.

Workaround: Auswahl des Index manuell setzen

Der Fehler ließ sich auf folgenden Aufruf eingrenzen:

$indextypes = intval(readline($vbphrase['search_content_type_to_index'] . ' [Default=0]: '));

Da ich nicht großartig Zeit in ein altes vB-Skript stecken wollte, das ohnehin nur selten benötigt wird, habe ich es mit einem einfachen Workaround versucht: Die obige Zeile auskommentieren und stattdesen die gewünschte Auswahl hart gesetzt.

$indextypes = 0;

Damit wurden alle Indizes problemlos neu erstellt (siehe Auswahlliste oben).

Leave a Reply