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 for remotely generated cr #10011

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Commits on Jun 18, 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 committed Jun 18, 2024
    Configuration menu
    Copy the full SHA
    d6b59ed View commit details
    Browse the repository at this point in the history