Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Checkable: Don't recalculate next_check while processing remotely genrated check #10168

Open
wants to merge 1 commit into
base: support/2.13
Choose a base branch
from

Commits on Sep 20, 2024

  1. Checkable: Don't recalculate next_check while processing remotely g…

    …enrated check
    
    Currently, when processing a `CheckResult`, it will first trigger an
    `OnNextCheckChanged` event, which is sent to all connected endpoints.
    Then, when `Checkable::ProcessCheckResult()` returns, an `OnCheckResult`
    event is fired, which is of course also sent to all connected endpoints.
    
    Next, the other endpoints receive the `event::SetNextCheck` cluster
    event followed by `event::CheckResult`and invoke
    `checkable#SetNextCheck()` and `Checkable#CheckResult()` with the newly
    received check. So they also try to recalculate the next check
    themselves and invalidate the previously received next check timestamp
    from the source endpoint. Since each endpoint randomly initialises its
    own scheduling offset, the recalculated next check will always differ by
    a split second/millisecond on each of them. As a consequence, two Icinga
    DB HA instances will generate two different checksums for the same state
    and causes the state histories to be fully resynchronised after a
    takeover/Icinga 2 reload.
    yhabteab authored and Al2Klimov committed Sep 20, 2024
    Configuration menu
    Copy the full SHA
    f66f995 View commit details
    Browse the repository at this point in the history