Nextcloud 33: időnként használhatatlanná lassuló rendszer
Probléma: A Nextcloud Hub 26 Winter (aka Nextcloud 33) kiadásra való frissítés után az egész használhatatlanná lassul: időtúllépések jelentkeznek, fájlok elérhetetlenek, mintha random helyeken egyszerűen csak megfagyna az egész. Majd kisvártatva minden megoldódik, mintha mi sem történt volna.
Probléma: A Nextcloud Hub 26 Winter (aka Nextcloud 33) kiadásra való frissítés után az egész használhatatlanná lassul: időtúllépések jelentkeznek, fájlok elérhetetlenek, mintha random helyeken egyszerűen csak megfagyna az egész. Majd kisvártatva minden megoldódik, mintha mi sem történt volna.
Előfordulhatnak továbbá olyan adatbázisszerver-oldali hibák, amik túl sok kapcsolatra vagy táblazárolással kapcsolatos problémára panaszkodnak.
Továbbá a rendszerhasználati adatok azt mondják, hogy az adatbázis (MariaDB / MySQL) teker nagyon. A mytop szerint a
Updating DELETE FROM `filecache` WHERE `path_hash` = ....
művelet tart sokáig.
Probléma oka: Az új Nextcloud verzióban a fájlok előnézetét kezelő rendszer megváltozott, és a régi rendszerről az újra való átállás online történik. Azaz amikor a rendszer eléri az adott tartalmat, észleli, hogy még a régi módszert használja, ekkor átállítja azt az újra.
Igen ám, de az átállítás közben a sokszor igen méretes filecache táblából töröl sorokat. A törlés végrehajtásáért felelős lekérdezés viszont nem használja a táblában amúgy jelenlévő indexet. Emiatt az adatbázisrendszernek erőből kell átnéznie a teljes táblát, ami miatt a művelet nagyon sok erőforrást igényel, és igen lassú a törlendő sorok megkeresése.
Megoldás #1: ha van naprakész mentésed (miért nincs?), akkor érdemes lehet visszatölteni az előző Nextcloud verziót és megvárni a 33-as verzió első karbantartási kiadását, amiben ez a hiba javítva lesz.
Megoldás #2: Ha nem tudsz/akarsz visszaállni az előző verzióra, akkor kézzel is megfoltozhatod a problémás funkciót. Én ezt választottam.
Fontos: mielőtt nekikezdesz mindenképp csinálj biztonsági mentést a <nextcloud-helye>/lib/private/Preview/PreviewMigrationService.php fájlról!
A folt teljesen hivatalos és biztonságos, azt többen is átnézték, és már beolvasztásra került a Nextcloud kódbázisába. Itt található: [stable33] fix(perf): use index when deleting old previews #58431
A javítás szerencsére pofonegyszerű: a pirossal jelölt sort ki kell venni, a zölddel jelölteket pedig be kell tenni. Mentés után a változásod azonnal él. A hibát a legegyszerűbben a Fotók alkalmazáson belül való tallózgatással tudod előhozni. Ha ezúttal használható marad a rendszer, akkor minden rendben van.