We have one java application which is based on karaf container, and this application exit every 5-6 days, we investigated and found,
- no JVM OOM is occured, and gc logs shows memory is OK and can be collected normally.
- no linux system OOM kill is occured, no log in 'dmesg' and /var/log/messages.
- JVM didn't corrupt, no hs_err or core file is generated
and we tried to strace the application like below,
nohup strace -tt -e trace=signal -p 7428 -o /tmp/app.strace >/dev/null 2>&1 &
and we got below info from the strace log file,
[root@admin ~]# cat /tmp/app.strace
14:33:53.561413 +++ killed by SIGALRM +++
the '-f' option of strace is not used since it will cause the application response very slow and will cause the service unusable.
Question is, how could we know which program send the SIGALRM to this application? Thanks!