Monit 5.25.0 crashes in Util_resetInfo() after checked process stopped.

Issue #688 resolved
mschriber created an issue

We upgraded from 5.20 to 5.25, no changes to monitrc. Monit now stops unexpectedly with SIGSEGV or SIGABRT when a checked process stops and has removed it's PID-file.

strace last lines:

getpgid(7821)                           = 7820
getpgid(7826)                           = -1 ESRCH (No such process)
stat("/home/user/run/", 0x...) = -1 ENOENT (No such file or directory)
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0} ---

gdb stack:

Program received signal SIGABRT, Aborted.
0x00007f1439a9c1f7 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56        return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
(gdb) where
#0  0x00007f1439a9c1f7 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007f1439a9d8e8 in __GI_abort () at abort.c:90
#2  0x00007f1439adbf47 in __libc_message (do_abort=do_abort@entry=2, fmt=fmt@entry=0x7f1439be8608 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:196
#3  0x00007f1439ae1b54 in malloc_printerr (action=<optimized out>, str=0x7f1439be8630 "munmap_chunk(): invalid pointer", ptr=<optimized out>, ar_ptr=<optimized out>) at malloc.c:5023
#4  0x00000000004276fe in Util_resetInfo ()
#5  0x0000000000443759 in ProcessTree_findProcess ()
#6  0x000000000042f3b2 in check_process ()
#7  0x000000000042caaa in validate ()
#8  0x00000000004138ea in do_action ()
#9  0x000000000041464f in main ()

Might be related to recently added line src/util.c:1780 of release-5-25-0.

Comments (1)

  1. Log in to comment