SonarQube: high disk watermark [90%] exceeded

Probléma: A SonarQube mereven ragaszkodik ahhoz, hogy az ElasticSearch adatait tartalmazó diszken legyen legalább 10% szabad hely. Az sem érdekli, ha az a 10% történetesen több 10 GB.

SonarQube logó
SonarQube logó

Probléma: A SonarQube mereven ragaszkodik ahhoz, hogy az ElasticSearch adatait tartalmazó diszken legyen legalább 10% szabad hely. Az sem érdekli, ha az a 10% történetesen több 10 GB.

A SonarSource a Google találatok szerint eléggé elzárkózik attól, hogy ezt könnyen módosíthatóvá tegye, mert az már „nem támogatott" konfiguráció. Ezt attól függően, hogy milyen sapka van rajtam, vagy megértek vagy nem. Felhasználóként inkább nem.

A hibaüzenetet nem maga a SonarQube, hanem az általa használt keresőszerver, az Elasticsearch dobja. Szerencsére ez igencsak jól van dokumentálva.

Megoldás: Közvetlenül az Elasticsearch-öt kell konfigurálni, a SonarQube-ot ki kell hagyni a buliból. A következő parancs kikapcsolja a szabad hely ellenőrzését. Fontos tudni, hogy amennyiben megtelik a lemez, úgy akár adatvesztés is történhet!

curl -X PUT -H 'Content-Type: application/json' -d '{ "persistent": { "cluster.routing.allocation.disk.threshold_enabled":false }}' http://localhost:9001/_cluster/settings

Fontos, hogyha Dockerben fut a SonarQube, akkor az minden egyes újraindításkor újragenerálja az Elasticsearch konfigurációt, azaz a fenti beállítás köddé válik, így valahogy meg kell oldanod a perzisztenciát.