-
Notifications
You must be signed in to change notification settings - Fork 581
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
Share "Last reload attempt failed" time across Icinga process tree on *nix #8429
Conversation
75f76b0
to
733d032
Compare
@cla-bot check |
@julianbrost Would you prefer Boost shared memory? |
The deal with shared memory across processes is that if you use it, you start relying on implementation-defined behavior. This answer on Stack Overflow provides a pretty good analysis for So in general, I prefer to avoid shared memory if feasible but this boils down to whether we have a suitable alternative. In this sense, it's closely related to #9445: the timestamp here should be the same as the last time an existing worker was allowed to process config updates in #9445. As we consider both PRs for 2.14, I'll take a closer look at both soon and come back to this once I know more. If the answer is shared memory, it should probably be an abstraction like in 58c15bc. And whatever is communicated over that should be as safe as possible, that should mean at least testing or asserting that |
733d032
to
ebceb02
Compare
Don't worry. Nobody's gonna support Icinga on your toaster. It runs NetBSD doesn’t mean it runs Icinga :) |
b078222
to
ebceb02
Compare
GHA is wrong. Works for me. |
a6c82de
to
b994c03
Compare
Compiles even on my favourite marginal OS. 🎉 |
… *nix ... as only the umbrella process knows that time, but the icinga check running in the main process also needs to know it. refs #8428
b994c03
to
5c330e9
Compare
Apropos. @sthen Consider disabling unity builds by default (net/icinga/core2). I did this locally in Makefile and was able to compile Icinga + deps (actually deps + Icinga ;) ) with only 2G RAM. |
The port is setup to use non-unity builds on 32-bit architectures for
memory reasons already - and I did see build failures with that after
updating to some newer release before - which makes me want to stick with
the upstream default where possible really because we're then closer to the
normal build environment.
…On 12 May 2023 09:18:23 Alexander Aleksandrovič Klimov ***@***.***> wrote:
Apropos.
@sthen Consider disabling unity builds by default (net/icinga/core2). I did
this locally in Makefile and was able to compile Icinga + deps (actually
deps + Icinga ;) ) with only 2G RAM.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Even this isn’t working. @yhabteab Any idea why? |
Boost warns about the following problem:
It seems that you have encountered exactly the same problem here. When the worker process is initially launched, it obtains a copy of this member variable and it won't notice that it's meanwhile updated by other (the umbrella) processes. |
51f01a4
to
5c330e9
Compare
Just because I've reloaded not the node the check was scheduled on. 🐘 A simple icinga service, a config syntax error, a reload – and it complains. |
Not only for the intermediate versions you pushed but also with the previous version? So every "this doesn't work" you said this week was a false alarm? |
Especially with the previous version! I.e. 5c330e9 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This actually works well on my end, and the code is also (to me) fine compared to the previous version.
... as only the umbrella process knows that time,
but the icinga check running in the main process also needs to know it.
fixes #8428
TODO