Commit Graph

13237 Commits

Author SHA1 Message Date
Alexander A. Klimov 3de714489c Remove unused UnixWorkerState::Failed 2022-09-07 12:08:33 +02:00
Alexander A. Klimov df9008bfc4 StartUnixWorker(): watch forked child via waitpid(), not SIGCHLD handler
Before:

On SIGCHLD from the forked worker the umbrella process sets a failure flag.
StartUnixWorker() recognises that and does waitpid(), failure message, etc..
On OpenBSD we can't tell the signal source, so we always set the failure flag.
That's not how our IPC shall work, that breaks the IPC sooner or later.

After:

No SIGCHLD handling and no failure flag setting.
Instead StartUnixWorker()'s wait loop uses waitpid(x,y,WNOHANG)
to avoid false positives while watching the forked worker.
2022-09-07 11:46:46 +02:00
Yonas Habteab 31785b48fd Expression: Decrease `frame.Depth` only when calling `IncreaseStackDepth()` succeeds
This ensures that `frame.Depth` is only decreased when preceding `frame.IncreaseStackDepth()` callee was successful.
This way, `frame.Depth` will have the same depth prior to and after evaluating a frame.
2022-09-07 09:41:16 +02:00
Julian Brost 86b63a57ae
Merge pull request #9514 from Icinga/bugfix/validate-array-types-correctly
ClassCompiler: Validate field types -> Icinga type names correctly
2022-09-06 18:14:43 +02:00
Alexander A. Klimov 5e9f95c007 Icinga DB: on every check result update state only 1x, not 3x in a row
Before (time: vertical, stack: horizontal):

* Checkable::ExecuteCheck
  * Checkable::UpdateNextCheck
    * IcingaDB::NextCheckChangedHandler
      * HSET icinga:host:state
      * HSET icinga:checksum:host:state
      * ZADD icinga:nextupdate:host
  * RandomCheckTask::ScriptFunc
    * Checkable::ProcessCheckResult
      * Checkable::UpdateNextCheck
        * IcingaDB::NextCheckChangedHandler
          * HSET icinga:host:state
          * HSET icinga:checksum:host:state
          * ZADD icinga:nextupdate:host
      * IcingaDB::NewCheckResultHandler
        * HSET icinga:host:state
        * HSET icinga:checksum:host:state
        * ZADD icinga:nextupdate:host
  * IcingaDB::StateChangeHandler
    * XADD icinga:runtime:state
    * IcingaDB::ForwardHistoryEntries
      * XADD icinga:history:stream:state

After:

* Checkable::ExecuteCheck
  * Checkable::UpdateNextCheck
  * RandomCheckTask::ScriptFunc
    * Checkable::ProcessCheckResult
      * Checkable::UpdateNextCheck
      * IcingaDB::NewCheckResultHandler
        * HSET icinga:host:state
        * HSET icinga:checksum:host:state
        * ZADD icinga:nextupdate:host
  * IcingaDB::StateChangeHandler
    * XADD icinga:runtime:state
    * IcingaDB::ForwardHistoryEntries
      * XADD icinga:history:stream:state

The first state + nextupdate (for overdue) update comes from next_check being
set to now + interval immediately before doing the actual check (not to trigger
it twice). This update is not only not important for the end user, but even
inappropriate. The end user SHALL see next_check being e.g. in -4s, not 5m, as
the check is running at the moment.

The second one is just redundant as IcingaDB::NewCheckResultHandler (the third
one) is called anyway and will update state + nextupdate as well.
2022-09-06 10:10:14 +02:00
Yonas Habteab aa702b050c ClassCompiler: Validate field types -> Icinga Name correctly
When the classcompiler is validating/transforming field types -> Icinga type names, it is currently returning
Icinga `Number` type for field type of `bool`, which is actually wrong. This PR ensures to always transform
into the correct Icinga type names.
2022-09-05 17:16:53 +02:00
Alexander Aleksandrovič Klimov 3a8abdcc3b
Merge pull request #9500 from Icinga/bugfix/mailmap-lk
Update .mailmap
2022-08-26 15:49:46 +02:00
Julian Brost 06b64e32f4 Update .mailmap 2022-08-26 09:48:09 +02:00
Lorenz 67b025f69b
Add check_disk option to add inode numbers into perfdata (#9494) 2022-08-25 17:33:11 +02:00
Julian Brost 643e9cd48b
Merge pull request #9489 from Icinga/cxx-noext
Compile with -std=c++YY, not -std=gnu++YY, again
2022-08-19 09:46:00 +02:00
Alexander Aleksandrovič Klimov 7d64fbf8f6
Merge pull request #9433 from Icinga/bugfix/schedule-downtime-docs-duration
Docs: remove duration from schedule-downtime example
2022-08-16 16:05:53 +02:00
Alexander A. Klimov 797da46f1e Compile with -std=c++YY, not -std=gnu++YY, again 2022-08-15 17:33:54 +02:00
Julian Brost ad58106226
Merge pull request #9133 from Icinga/feature/gcc63
Require C++14 and GCC 6.3+
2022-08-12 14:17:12 +02:00
Julian Brost c59cdde72b
Merge pull request #9484 from Icinga/probot/sync-changelog/master/242f356259f0716e83fa2ae0c2b6daef7432f09b
CHANGELOG.md: add v2.13.5
2022-08-12 13:41:32 +02:00
Julian Brost d3cca0e621
Merge pull request #9409 from Icinga/feature/disallow-empty-object-names
Disallow empty object names
2022-08-11 16:53:28 +02:00
Alexander A. Klimov 2b53c47a3f CHANGELOG.md: add v2.13.5 2022-08-11 12:33:28 +00:00
Alexander Aleksandrovič Klimov 242f356259
Merge pull request #9477 from Icinga/docs/add-rhel9
Docs: Add RHEL 9 installation instructions
2022-08-11 14:33:15 +02:00
Henrik Triem de7e571c09 Docs: Add RHEL 9 installation instructions 2022-08-11 09:59:49 +02:00
Alexander Aleksandrovič Klimov c3074753aa
Merge pull request #9479 from Icinga/9478
IcingaDB::SendCustomVarsChanged(): don't delete custom vars of not synced types
2022-08-10 22:22:14 +02:00
Alexander A. Klimov a2362ebf17 IcingaDB::VersionChangedHandler(): don't handle not synced types
not to surprise (and crash) the Icinga DB daemon with unknown types.
2022-08-10 13:24:44 +02:00
Alexander A. Klimov 32871ca40c IcingaDB::SendCustomVarsChanged(): don't delete custom vars of not synced types
not to surprise (and crash) the Icinga DB daemon with unknown types.
2022-08-10 11:40:53 +02:00
Julian Brost 9ffcc80e9a
Merge pull request #9476 from Icinga/probot/update-authors/master/2b76351347c391cc0964783297cb37a65a3c5955
Update AUTHORS
2022-08-09 09:18:05 +02:00
icinga-probot[bot] 898b36a040
Update AUTHORS 2022-08-08 16:54:15 +00:00
Alexander Aleksandrovič Klimov 2b76351347
Merge pull request #9472 from mocdaniel/9471-rhel8-installation-docs
Updated RHEL8 installation documentation
2022-08-08 18:54:04 +02:00
Daniel Bodky f91d3c8532
Updated RHEL8 installation documentation 2022-08-05 12:18:47 +02:00
Julian Brost 409bda109c
Merge pull request #9444 from Icinga/bugfix/add-missing-redis-and-mysql-selinux-policy
Add missing Redis & Mysql unix socket SELinux policy
2022-08-05 10:41:38 +02:00
Julian Brost fb6331d2c1
Merge pull request #9468 from Icinga/probot/update-authors/master/03f60bbd1c1f01d60cd786280f66a248757a38b6
Update AUTHORS
2022-08-02 08:52:56 +02:00
icinga-probot[bot] 8bbb53abdd
Update AUTHORS 2022-08-01 16:05:37 +00:00
Jaap Marcus 03f60bbd1c
Replace apt-key add with gpg --dearmor (#9462)
* Replace apt-key add with gpg --dearmor

And follow the instructions as 

https://packages.icinga.com/ubuntu / debian / rasbian

* Remove extra space
2022-08-01 16:05:27 +00:00
Julian Brost 66be70509d
Merge pull request #9451 from Icinga/flush-state-file
Dump state file atomically not to corrupt it
2022-08-01 17:23:22 +02:00
Julian Brost 054d16500e
Merge pull request #9461 from Icinga/probot/update-authors/master/63dc1ac4146566dafb37330c22b6e2e38d1fde29
Update AUTHORS
2022-07-28 20:09:10 +02:00
Alexander A. Klimov c9d6eecc7f Dump state file atomically not to corrupt it
by using fsync(2) before close(2) and rename(2).
2022-07-28 18:00:37 +02:00
Alexander A. Klimov 600fb0e3c2 Introduce AtomicFile 2022-07-28 18:00:37 +02:00
Julian Brost 913566cbfa Windows: output useful error message for syscall errors 2022-07-28 17:00:57 +02:00
icinga-probot[bot] 07c0d429f1
Update AUTHORS 2022-07-28 13:14:14 +00:00
Julian Brost 63dc1ac414
Merge pull request #9459 from mrc-rpprcht/feature/itl-disk-fuse.portal
ITL: Add fuse.portal to disk_exclude_type for new Ubuntu LTS
2022-07-28 15:14:03 +02:00
Marc Rupprecht 70f88249fd ITL: Add fuse.portal to disk_exclude_type for new Ubuntu LTS 2022-07-28 09:42:14 +02:00
Julian Brost 24431146e5
Merge pull request #9456 from Icinga/openssl111q
Bump OpenSSL to 1.1.1q
2022-07-27 10:51:56 +02:00
Alexander A. Klimov 62379c1d5c Bump OpenSSL to 1.1.1q 2022-07-26 18:29:16 +02:00
Julian Brost 290e38f0e4
Merge pull request #9441 from Icinga/feature/windows-early-log-severity
Windows: only include critical messages in early log messages
2022-07-26 12:06:23 +02:00
Julian Brost 73aebde9a1
Merge pull request #9454 from Icinga/gha
GHA: Update build targets
2022-07-26 11:32:32 +02:00
Yonas Habteab 19f3e48344 Add missing IcingaDB Redis SELinux policy 2022-07-26 11:15:52 +02:00
Alexander Aleksandrovič Klimov 3bd2de9b3c
Merge pull request #9453 from Icinga/bugfix/gha-raspbian
GitHub Actions: Build Raspbian on Ubuntu 22.04
2022-07-25 18:07:35 +02:00
Alexander A. Klimov 235ac0e48e GHA: Update build targets 2022-07-25 16:55:34 +02:00
Julian Brost c14ccc5b0d
GitHub Actions: Build Raspbian on Ubuntu 22.04
Raspbian builds were running on Ubuntu 20.04 but with qemu-user-static from Ubuntu 21.10 (impish) due to need for newer features. However, the impish package repos are no longer available as that version reached its EOL. ubuntu-latest still refers to 20.04 on GitHub Actions but 22.04 is already available when explicitly specified. This commit switches the build over to that version and removes the workaround.
2022-07-25 13:00:42 +02:00
Julian Brost 5e759c7a6d
Merge pull request #9447 from Icinga/9431b
ITL: apt: render vars.apt_[dist_]upgrade=true as --[dist-]upgrade, not --[dist-]upgrade=true
2022-07-25 12:47:21 +02:00
Alexander A. Klimov e4c22e3973 ITL: apt: render vars.apt_[dist_]upgrade=true as --[dist-]upgrade, not --[dist-]upgrade=true
but preserve vars.apt_[dist_]upgrade=-s as --[dist-]upgrade=-s.
2022-07-20 17:25:22 +02:00
Yonas Habteab 148f5b8416 ConfigObject: Mark object names as required
This prevents a user from creating an object without a valid name such as `"", null`.
2022-07-15 15:51:58 +02:00
Julian Brost 32c7f7730d
Merge pull request #9443 from Icinga/Al2Klimov-patch-3
Update AUTHORS
2022-07-15 13:51:31 +02:00
Alexander Aleksandrovič Klimov c28cb6a0da
Update AUTHORS 2022-07-15 09:41:50 +02:00