Closed r2it-git closed 1 month ago
Zreštartoval som ten dev Kramérius (testoval som tam konfiguráciu), a už sa mi to nedarí zreplikovať. Včera sa mi to podarilo 3 krát za sebou tak, že som zapol naraz Kramérius aj postgres, ale teraz nabehne bez problémov. Tak predpokladám, že to závisí na nejakom súbehu viacerých udalostí, a kľudne sa to môže stávať aj na starších verziách, akurát som mal včera "šťastie" a nastala táto chyba iba vo verzií 7.0.35.
Podle toho prilozeneho logu ten problem nastava, kdyz neni postgres dostupny pri startu Tomcatu - ve startup sekvenci neni tahle situace spravne osetrena a uz se proto nenastartuji nektere dalsi sluzby (process scheduler, CDK kanal a hlavne AsyncHttpClient, pres ktery se nacitaji dlazdice z image serveru a ktery pak hlasi tu chybu I/O reactor status: INACTIVE
). To opravime, workaround je ale zatim jednoduchy - startovat tomcat az jako posledni.
Pokud se ale postgres vypne a restartuje uz pri spravne bezicim Tomcatu, nedari se nam ten problem replikovat a neni mi ani jasne, jak by to ten AsyncHttpClient mohlo ovlivnit
@vlahoda teraz sa mi to podarilo zreplikovať už na bežiacom tomcate (v dev Kramériu). catalina.2024-07-31.log
Edit: 31-Jul-2024 07:21:05.619
- som otvoril stránku a tá sa správne načítala.
31-Jul-2024 07:29:55.609
- som zreštartoval postgres. Odvtedy sa ostatné stránky načítajú rozmazané. Tá prvá sa načíta správne, ale predpokladám, že to bude asi kvôli nejakej cache.
Podle toho logu je ale zrejme, ze se Tomcat startoval pri nedostupne databazi a na radku 286 je prave videt, ze problem nastal v te inicializacni sekvenci cz.incad.Kramerius.StartupServlet.init(StartupServlet.java:81)
- pak uz se nenastartoval ten http klient a pomuze jedine novy restart tomcatu
Aha, vidím to. Akurát nechápem prečo sa tá jedna stránka načítala a ostatné potom už nie. V produkcií sa nám to stalo iba pri reštarte postgresu aj Kramériu naraz, takže je možné, že som to nesprávne vyhodnotil keď som sa to snažil zreplikovať a nastáva to len pri štarte.
nechápem prečo sa tá jedna stránka načítala a ostatné potom už nie
jedine vysvetleni je cache browseru
V kazdem pripade: i kdyz tuhle konkretni chybu pri startu opravime, musi se sluzby startovat ve spravnem poradi. Nevim, jak to mate resene v Kubernetes, ale v docker compose to resime definovanim zavislosti mezi kontejnery - u kontejneru, ktere startuji dlouho (solr, keycloak) je nastavena navic podminka, ze nestaci jen spusteni kontejneru, ale ze projde health check.
Priklad:
services:
kramerius:
...
depends_on:
iipimage:
condition: service_started
memcached:
condition: service_started
imageserver:
condition: service_started
audioserver:
condition: service_started
solr:
condition: service_healthy
krameriusPostgres:
condition: service_started
keycloak_eduid:
condition: service_healthy
Ahoj,
narazili sme na chybu, kedy po výpadku (a reštartovaní) Postgresu sa k nemu už Kramérius nevie správne pripojiť.
V logoch sa síce nachádza riadok
com.zaxxer.hikari.pool.HikariPool.checkFailFast HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@e6118a2
, ale následne requesty na Kramérius failujú s príčinou21-Jul-2024 14:59:12.349 SEVERE [http-nio-8080-exec-7] cz.incad.kramerius.auth.thirdparty.ExtAuthFilter.doFilter Request cannot be executed; I/O reactor status: INACTIVE java.lang.IllegalStateException: Request cannot be executed; I/O reactor status: INACTIVE
. Orezané logy na čas kedy táto chyba nastala prikladám k tomuto issue.Po tejto chybe beží Kramérius na oko správne, čo sme si všimli u nás v MZK je, že keď táto chyba nastane, tak sa skeny nenačítajú úplne, ostanú rozmazané. Na ukážku som to zreplikoval v našom dev Kramériu. Replikácia tejto chyby je v celku jednoduchá, stači buď zapnúť najskôr Kramérius a potom Postgres, alebo počas behu Kraméria postgres zreštartovať.
Predpokladám, že pri tejto chybe môže byť ovplyvnená aj iná funkcionalita Kraméria, ktorá závisí na komunikácií s postgresom, ale netestoval som to.
Pri replikácií tejto chyby som zistil, že vo verzií 7.0.34 nenastáva. Podarilo sa mi ju zreplikovať iba vo verzií 7.0.35.
Randiak - MZK
catalina.2024-07-21.log
Edit: live logy sú k dispozícií tu.