History log of /sssd/src/util/util_watchdog.c
Revision Date Author Comments Expand
d7075a255a1f28e890539072e06d0140ffe0927c 30-Aug-2016 Jakub Hrozek <jhrozek@redhat.com>

WATCHDOG: define and use _MAX_TICKS as 3 Instead of using the number 3 directly, let's introduce and use WATCHDOG_MAX_TICKS. Reviewed-by: Petr Čech <pcech@redhat.com>

b8ceaeb80cffb00c26390913ea959b77f7e848b9 25-Aug-2016 Pavel Březina <pbrezina@redhat.com>

watchdog: cope with time shift When a time is changed into the past during sssd runtime (e.g. on boot during time correction), it is possible that we never hit watchdog tevent timer since it is based on system time. This patch adds a past-time shift detection mechanism. If a time shift is detected we restart watchdog. Resolves: https://fedorahosted.org/sssd/ticket/3154 Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com> Reviewed-by: Fabiano Fidêncio <fidencio@redhat.com>

8a1ad2a2cc489c202092af321f4c4a9787802ed6 01-Jul-2016 Lukas Slebodnik <lslebodn@redhat.com>

UTIL: Fix warning Wmissing-braces Older versions of gcc does not like initialisation of struct sigevent because the first member of structure is union (sigval_t) src/util/util_watchdog.c: In function 'setup_watchdog': src/util/util_watchdog.c:77:12: warning: missing braces around initializer [-Wmissing-braces] struct sigevent sev = { 0 }; ^ src/util/util_watchdog.c:77:12: warning: (near initialization for 'sev.sigev_value') [-Wmissing-braces] src/util/util_watchdog.c:77:12: warning: initialization makes integer from pointer without a cast src/util/util_watchdog.c:77:12: warning: (near initialization for 'sev.sigev_value.sival_int') Reviewed-by: Sumit Bose <sbose@redhat.com>

75ba524d356fed615a9c92152f64aebf0bdaf9c2 29-Jun-2016 Simo Sorce <simo@redhat.com>

Util: Add watchdog helper The watchdog uses a kernel timer to issue a signal to the process. It checks if the ticker is not being reset by the main event loop, which would indicate that the process got stuck. At the same time it sets a tevent timer to clear the watchdog ticker, so that the watchdog handler is kept happy. If the watchdog detects that the timer event failed to reset the watchdog for three times in a row then the process is killed. Normally the monitor will detect the child terminated and will rescheduled it. Related: https://fedorahosted.org/sssd/ticket/2921 Reviewed-by: Jakub Hrozek <jhrozek@redhat.com> Reviewed-by: Pavel Březina <pbrezina@redhat.com>