The problem might be related to a monit reload race condition [1] which was fixed in Monit 5.27.1.
On 28 Oct 2020, at 01:17, Kannamraju P <pkannamraju@gmail.com> wrote:
Hi All, I am running into a race condition , when I try to dynamically update monitrc externally while MONIT is running , here is my use case
1. MONIT setup in daemon mode with 5 sec polling timeout . It has a set of static services defined in the default MONITRC file. 2. Default Monitrc includes one more custom config file ex: monitrc_custom file ."include /etc/monitrc_custom"
a) In this custom monitrc file , services get added and deleted dynamically by an external process b) Any updation to monitrc is followed by monit reload, so that MONIT picks up the updated service details
With this setup I am observing that when both external service and monit try to access the custom monitrc file , MONIT is getting stuck . It becomes non responsive and "Monit summary" results in all processes stuck in initializing state .
ex:
Is there a way I can apply some locking mechanism to avoid the contention of both external processes and monit accessing config files at same time ?
-- thanks & Regards, Raju
|