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 misem 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 misem 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, akkor á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.