XWiki-17.10-LTS-Upgrade - was kann da schon schiefgehen?

Häufige Probleme und wie man sie zuverlässig löst

Probleme bei XWiki-LTS-Upgrade?
Wir haben die Lösung!

Der Wechsel von XWiki 16.10.x auf 17.10.x ist im Allgemeinen ein gut unterstützter Upgrade-Pfad, doch in der Praxis sind wir auf einige Schwierigkeiten gestoßen.
Wir haben die wichtigsten Hinweise und Lösungen zusammengestellt, die bei der Aktualisierung von XWiki 16.10.x auf 17.10.x auftreten können. Um allen anderen XWiki-Nutzern die unnötige Suche nach Fehlern zu ersparen, möchten wir unsere Erkenntnisse mit euch teilen.

1.LiveData-Tabellen bleiben nach dem Upgrade mit einer "Lade-Spinner"-Grafik stehen

Mit dem Upgrade auf 17.10.x wurden Teile der Benutzeroberfläche – insbesondere LiveData-Tabellen – auf Vue 3 umgestellt.

Das betrifft Stellen wie z. B.:

  • Attachment-Listen auf Seiten
  • Seitenindex
  • Unterseiten-Listen, auch gepinnte Unterseiten-Listenverschiedene Admin-Oberflächen
  • die Logger-Konfiguration im Administratorbereich

Typische Fehlermeldung wenn dieses Problem auftritt:

Uncaught TypeError: Failed to resolve module specifier "vue"

Ursache

Die Ursache ist in solchen Fällen typischerweise eine früher angepasste HTTP-Meta-Info-Preference in den XWiki-Preferences unter "XWiki Administrieren -> Erscheinungsbild -> Präsentation". Die LiveData-Widgets binden ihre JavaScript-Module über den UI Extension Point org.xwiki.platform.html.head in den HTML-<head> ein.

Wenn das Feld HTTP-Meta-Info in den Einstellungen früher angepasst wurde und beim Upgrade die alte Anpassung beibehalten wurde, fehlt dort dieser UIXP-Aufruf oft noch oder verwendet noch den alten Namen. Dann werden die benötigten JavaScript-Module nicht korrekt in den <head> eingebunden – und die LiveData-Tabellen bleiben auf der Ladespinner-Grafik mit „Loading…“ stehen.

Lösung

Prüfen Sie in den XWiki-Preferences das Feld HTTP-Meta-Info unter "XWiki Administrieren -> Erscheinungsbild -> Präsentation". Wenn dort ein eigener Wert hinterlegt ist, sollte dieser mit der aktuellen Standard-Vorgabe von meta.vm verglichen werden. Wichtig ist, dass der UI Extension Point org.xwiki.platform.html.head korrekt aufgerufen wird. Zum Test kann man den angepassten Wert auch vorübergehend entfernen, damit wieder das Standard-Template greift.

2. MySQL / MariaDB: fehlendes PROCESS-Privilege kann das Upgrade blockieren

Ein weiterer möglicher Stolperstein betrifft Installationen mit MySQL oder MariaDB, wenn der verwendete XWiki-Datenbankbenutzer bewusst restriktiv konfiguriert ist. Beim Upgrade kann die Datenbankmigration scheitern, wenn dem XWiki-DB-User das globale Privileg PROCESS fehlt.

Ursache

PROCESS erlaubt das Einsehen aller laufenden DB-Threads bzw. Sessions, nicht nur der eigenen. Das ist aus Security-Sicht durchaus kritisch, insbesondere wenn sich mehrere Anwendungen einen Datenbankserver teilen. Gerade deshalb ist es nachvollziehbar, dieses Privileg in gehärteten Umgebungen nicht standardmäßig zu vergeben.

Typische Fehlermeldung:

Unable to update schema of wiki `[xwiki]`

Diese Meldung bedeutet nicht, dass XWiki auf eine Datenbank mit dem Namen xwiki zugreifen wollte. [xwiki] ist hier die Wiki-ID der Hauptwiki, nicht der Datenbankname.

Lösung

Für XWiki wird das PROCESS-Privilege benötigt. Fehlt es, kann das Upgrade scheitern, und auch der anschließende Betrieb ist nicht korrekt möglich.
Beispiel:

GRANT PROCESS ON *.* TO 'xwiki'@'localhost';

Wichtig ist dabei: PROCESS ist ein globales Privileg. Ohne dieses Privileg sieht ein Benutzer nur seine eigenen Threads, mit PROCESS alle Threads des Servers. Dazu gehört auch, dass der XWiki-DB-User mit diesem Recht die aktuell ausgeführten SQL-Befehle anderer Benutzer bzw. Threads sehen kann. Die sicherheitsrelevanten Hintergründe dazu beschreiben sowohl die MySQL-Dokumentation zu SHOW PROCESSLIST als auch die MariaDB-Dokumentation zu globalen Privilegien und GRANT.

3. Linux-Paket-Upgrades: geänderte Konfigurationsdateien prüfen

Beim Upgrade über die offiziellen (Debian-)Pakete fragt apt wie üblich, ob geänderte Konfigurationsdateien übernommen werden sollen. Gerade bei Dateien wie /etc/xwiki/web.xml sollte man genau prüfen, ob relevante Änderungen übernommen werden müssen.
Das ist kein spezielles XWiki-Problem, sondern allgemeine Paketpflege: Wer lokale Altstände ungeprüft beibehält, riskiert Inkonsistenzen zwischen Anwendung und Konfiguration.

Unsere Empfehlungen – besonders für Installationen mit lokalen Anpassungen:

  • geänderte Konfigurationsdateien bei Paketupdates immer prüfen
  • Unterschiede zwischen alter und neuer Version vergleichen
  • notwendige Änderungen gezielt übernehmen

4. Versionssprünge im Debian-XWiki-LTS-Repository im Blick behalten

Das XWiki-LTS-Repository für Debian GNU/Linux enthält nicht unbedingt dauerhaft alle Zwischenversionen. Uns ist es passiert, dass wir eigentlich nur auf eine neuere 16.10.x-Version aktualisieren wollten, diese im Repository aber nicht mehr verfügbar war. Dadurch landete das System direkt auf 17.10.x. Das ist nicht grundsätzlich problematisch, kann aber überraschend sein, wenn man gezielt nur einen Patch-Level innerhalb einer LTS-Reihe ansteuern wollte.

Wir werden demnächst noch einen eigenen Erfahrungsbericht-Artikel zum XWiki-Versionsmanagement auf unserer Webseite veröffentlichen.

5. Weitere Hinweise und Empfehlungen für ein reibungsloses und effektives Upgrade

Vor dem Upgrade

  • vollständiges Backup der Datenbank
  • Sicherung von xwiki.cfg, xwiki.properties, web.xml und lokalen Anpassungen
  • Prüfung, ob XWiki-Preferences wie HTTP Meta Info individuell angepasst wurden
  • bei MySQL/MariaDB sicherstellen, dass der DB-User das globale PROCESS-Privilege besitzt

Nach dem Upgrade

  • Datenbankmigration vollständig durchlaufen lassen
  • Browser-Cache leeren
  • LiveData-basierte Oberflächen testen
  • bei Problemen die meta-Preference mit meta.vm vergleichen
  • bei MySQL/MariaDB sicherstellen, dass das globale PROCESS-Privilege gesetzt ist
  • geänderte Paket-Konfigurationsdateien kontrollieren

Wie bereits erwähnt, wird der Wechsel grundsätzlich gut unterstützt, und die hier aufgeführten Probleme sind eher Kleinigkeiten; dennoch können sie unnötige Schwierigkeiten verursachen und Zeit kosten. Wir freuen uns, wenn euch diese kurze Zusammenfassung weiterhilft, und hoffen, dass wir allen Nutzern etwas Zeit sparen konnten. Wir wünschen allen Lesern ein problemloses Upgrade und viel Erfolg bei der Arbeit mit XWiki 17.10.x!

Das könnte Sie ebenfalls interessieren

XWiki- und Softwareentwicklungs-Projekte
In den vergangenen Monaten konnten wir spannende XWiki-Projekte umsetzen – von individuellen Macros bis hin zu komplexen Fachanwendungen.
Schülerpraktikum bei Ohrner IT
Wir freuen uns sehr, diese Woche einen Schülerpraktikanten im Rahmen eines einwöchigen Berufsorientierungspraktikums bei uns zu begrüßen!
Bei Fragen stehe ich Ihnen gerne zur Verfügung.
Gunter Ohrner

Inhaber/Geschäftsführender Gesellschafter

+49 7031 – 20 29 29 0 +49 7031 – 20 29 29 99 info@ohrner-it.com

Ohrner IT GmbH
Otto-Lilienthal-Straße 36 71034 Böblingen

Kontakt

Sie wollen eine Software entwickeln lassen? Dann sind Sie bei uns richtig! Wir freuen uns auf Ihre Anfrage.

Profitieren Sie von unseren individuellen Leistungen und füllen Sie unser Kontaktformular aus.

* Pflichtfelder