K7 / problém s korektním zastavením běžící instance Tomcatu
Opened this issue · 2 comments
Zdravím,
potýkám se s tím již nějaký čas, ale asi nastal ten správný okamžik kdy to začít řešit systematicky.
Aktuální konfigurace je následující:
- Apache Tomcat verze 9.0.93 (problém se ale týká i předchozích verzí řady 9),
- K7 verze 7.0.37 (problém se vyskytuje i u předchozích verzí),
- příslušné proměnné prostředí (JAVA_HOME, CATALINA_OPTS, CATALINA_HOME, CATALINA_BASE, CATALINA_PID atd.) řádně nastaveny.
Po nastartování Tomcatu příkazem $CATALINA_BASE/bin/startup.sh
vše běží jak má, Kramerius normálně funguje.
Problém nastává v okamžiku pokusu o zastavení Tomcatu příkazem $CATALINA_BASE/bin/shutdown.sh
.
Výstup příkazu k zastavení skončí takto:
a instance Tomcatu stále zůstává běžet, ale co je horší, začne panikařit (kromě toho dále alokuje zdroje) a kupit velkou rychlostí výjimky/chybové hlášky do logu.
Teprve ldyž zavolám příkaz $CATALINA_BASE/bin/catalina.sh stop -force
, tak je instance Tomcatu natvrdo ustřelena:
Analýzou logu jsem zjistil, že potenciálně je problém asi v tom, že jádro Krameria nastartuje nějaký proces/vlákno související se správou procesů (můj odhad, možná to chápu špatně), které se ale při požadavku na celkové zastavení nedaří ukončit a kvůli tomu začne trotlit celý Tomcat.
Zde jsou dva inkriminované a podezřelé řádky z catalina.log
:
První řádek indikuje, že to má problém s odregistrací JDBC ovladače, nicméně to nakonec odstřelí interní mechanizmus Tomcatu (asi to neni optimální, ale dejme tomu).
Ale druhý řádek je pak si ten hlavní zdroj problému - to vlákno cz.incad.kramerius.processes.i mpl.GCSchedulerImpl-thread
se nepodaří standardně zastavit, začne to trotlit a sypat hromady hlášek do logu, viz výše.
Příklad logu:
Kde by mohl být problém?
Díky, MD
@mduda100871 Změna bude problematičtější a vyžádá si víc času. Odebíram z releasu.