Kontakt

info@unaone.net

durchgehend 24/7

0451 / 62066790

Mo. - Do. 10 - 15 Uhr

Vorsicht vor Update auf Nextcloud 26

Ins Update auf Nextcloud26 hat sich ein veritabler Bug in die Cache-Verwaltung eingeschlichen

Vorweg: der Bug betrifft niemanden, der Nextcloud Standalone auf einem separaten Server betreibt – nur die Fälle, wo mehrere Installationen sich einen Server teilen (wie es z. B. auch im normalen Webhosting der Fall ist) sind betroffen.

Generell ist es bei Nextcloud keine schlechte Idee etwas mit Updates zu warten – dieser Fehler ist nicht der Erste, der sich in ein Release eingeschlichen hat. Nun gab es hier bereits einige Kundenanfragen nach einem Update auf die neue Version, letztendlich auch schon ein paar Neuinstallation mit der neuen Version, also habe ich mich breit schlagen lassen (selber Schuld also, sehe ich ein).

Wie auch immer: nach dem Update hatte ich das Problem, dass willkürlich einige Nextcloud-Instanzen mit einem Error 500 nicht mehr erreichbar waren – andere aber schon.

Die Logfiles gaben keinen Hinweis, es war absolut nichts zu finden, was auf eine Ursache des Problems hindeutete. Bis ich mir mal die nextcloud.log von betroffenen Installationen angeschaut habe.

Da gab es in der Tat viele Fehlermeldungen mit PHP-Includes (also PHP-Dateien, die in andere PHP-Dateien eingebunden werden), die nicht ausgeführt werden konnten, weil der Pfad der einzubindenden Datei nicht gefunden werden konnte. Und viel mysterlöser: schaute man mal genauer hin, zeigten diese Includes auf Pfade von ganz anderen Installationen.

Sehr merkwürdig und sorgt natürlich dafür, dass der Puls doch etwas höher geht. Was ist da passiert (zumal bis auf das Update an keiner Konfiguration etwas geändert wurde)?

Nun, Nextcloud verwendet (u.a.) den APCu-Cache von PHP. Diesen Cache gibt man, wenn man etwas rein speichert, einen Identifier mit, damit unterschiedliche Applikationen auseinandergehalten werden können (stark vereinfacht). Nextcloud scheint diesen Identifier entfernt zu haben (vorher muss er da gewesen sein, denn es hat ja vorher funktioniert), mit der Folge, dass APCu PHP-Scripte mit ansonsten gleichem Dateinamen, aber unterschiedlichem Pfad nicht mehr auseinanderhalten konnte.

Darauf muss man erst mal kommen.

Lösung also: APCu in der php.ini und in den Configs der einzelnen Nextclouds deaktivieren, nun läuft zwar alles etwas langsamer und es gibt eine hässliche Fehlermeldung in der Systemprüfung von Nextcloud in den Einstellungen, aber es läuft wenigstens.

Für unsere Managed-Nextclouds ist das natürlich zentral eingestellt, da braucht ihr also nichts zu tun, im normalen Webhosting geht das so nicht (wir wollen APCu ja nicht generell deaktivieren) und wir wissen ja unter Umständen auch gar nicht, dass jemand eine Nextcloud betreibt, falls also ein Kunde / eine Kundin nach einem Update auf Nextcloud26 ein entsprechendes Problem hat und nicht weiterkommt bitte gerne an unseren Support wenden.

Bei Github gibt es dazu auch eine “Issue” – wer es im Original lesen möchte, findet es hier: https://github.com/nextcloud/server/issues/37610

 

Update 21.04.2023

Wie unter dem obigen Guthub-Issue zu lesen ist, gibt es inzwischen einen Patch. Leider hat dieser es nicht mehr in das heutige Update auf Nextcloud 26.0.1 geschafft, in 26.0.2 (oder welche Versionsnummer auch das nächste Update haben wird), wird er aber wohl enthalten sein.

Man kann den Patch manuell anwenden, für von uns betreute Installationen haben wir aber darauf verzichtet. Zum einen würde der Patch wieder andere Fehlermeldungen produzieren (da ist Code, der nicht dem Original entspricht), zum anderen funktionert es auch ohne den APCu-Cache (mal abgesehen davon dass es etwas langsamer ist) bislang relativ gut. In dem Sinne gibt es keinen Grund für einen manuellen Eingriff.