12189 Commits

Author SHA1 Message Date
Julian Brost
a2a5c3f28d InfluxdbWriter: only flush from work queue
There is no explicit synchronization of access to m_DataBuffer which is fine if
it is only accessed from the single-threaded work queue. However, Stop() also
called Flush() in another thread, leading to concurrent write access to
m_DataBuffer which can result in a crash due to use after free/double free.

Changes in this commit:
* Flush() is renamed to FlushWQ() to show that it should only be called from
  the work queue. Additionally, it now asserts that it is running on the work
  queue.
* Visibility of some data members is changed from protected to private. No
  other classes have to access these at the moment. By this change, accidental
  concurrent access from derived classes in the future is prevented.
* Stop() now flushes by posting FlushWQ() to the work queue and joining it.
2022-02-23 15:08:57 +01:00
Alexander Aleksandrovič Klimov
f150ad9535
Merge pull request #9234 from Icinga/bugfix/gha-pin-windows-version-2.12
GitHub Actions: pin Windows Server version to 2019
2022-02-21 15:09:00 +01:00
Alexander Aleksandrovič Klimov
a1e11b9024
Merge pull request #9232 from Icinga/bugfix/gha-drop-centos8-2.12
GHA: drop CentOS 8
2022-02-21 14:05:32 +01:00
Julian Brost
fe5eb0a2f5 GitHub Actions: pin Windows Server version to 2019 2022-02-18 16:09:40 +01:00
Alexander Aleksandrovič Klimov
71bd0d6f67 GHA: drop CentOS 8
It's EOL.
2022-02-18 16:07:05 +01:00
Julian Brost
93461e9397
Merge pull request #9184 from Icinga/bugfix/downtime-all-services-on-child-hosts-212
Fix scheduling of downtimes for all services on child hosts
2022-01-21 18:03:32 +01:00
Julian Brost
5140b2e3d6
Merge pull request #9185 from Icinga/bugfix/dont-trigger-fixed-downtime-as-flexible-212
Don't trigger a fixed downtime like a flexible one
2022-01-21 18:03:15 +01:00
Julian Brost
9fc426e20e Don't trigger a fixed downtime like a flexible one
When creating a fixed downtime that starts immediately while the checkable is
in a non-OK state, previously the code path for flexible downtimes was used to
trigger this downtime. This is fixed by this commit which resolves two issued:

1. Missing downtime start notification: notifications work differently for
   fixed and flexible downtimes. This resulted in missing downtime start
   notifications under the conditions described above.
2. Incorrect downtime trigger time: this code path would incorrectly assume the
   timestamp of the last checkable as the trigger time which is incorrect for
   fixed downtimes.
2022-01-20 11:45:38 +01:00
Julian Brost
8b3bd062ac Document which other downtimes are deleted by /v1/actions/remove-downtime 2022-01-20 11:40:21 +01:00
Julian Brost
b9e2499148 Prevent duplicate donwtimes when combining child_options and all_services 2022-01-20 11:40:21 +01:00
Julian Brost
f298314216 Fix scheduling of downtimes for all services on child hosts
The loop iterated over the services of the wrong host resulting in duplicate
downtimes scheduled for services of the parent host instead of downtimes for
services of the child host.
2022-01-20 11:40:21 +01:00
Julian Brost
49cef4e907
Merge pull request #9125 from Icinga/bugfix/icinga2-crashes-when-sending-notifications-8186
Avoid "type" key in dicts being part of object state attrs
2022-01-19 15:49:02 +01:00
Alexander Aleksandrovič Klimov
0ed8eef5de
Merge pull request #9177 from Icinga/feature/github-actions-windows-preinstalled-deps-2.12
GitHub Actions: Use preinstalled dependencies on Windows (2.12)
2022-01-17 12:19:54 +01:00
Julian Brost
adfb05e09a GitHub Actions: Use preinstalled dependencies on Windows
The Windows image provided by GitHub already includes most of our dependencies,
so the installation of all Chocolatey packages except winflexbison3 was
redundant. Visual Studio is provided in the Enterprise version instead of
Community, so that has to be added to the search path as well.
2022-01-14 14:04:49 +01:00
Alexander Aleksandrovič Klimov
57cc6ad11b
Merge pull request #9170 from Icinga/bugfix/gha-windows-throwonnativefailure-2.12
doc/win-dev.ps1: actually utilize ThrowOnNativeFailure
2022-01-10 18:24:48 +01:00
Julian Brost
b7198fdd84
Merge pull request #9156 from Icinga/bugfix/git-describe-escapes-to-parent-dirs-2.12
third-party: update GetGitRevisionDescription CMake module
2022-01-10 17:45:31 +01:00
Alexander A. Klimov
139d9d9de4 doc/win-dev.ps1: actually utilize ThrowOnNativeFailure
refs #8935
2022-01-10 14:29:56 +01:00
Alexander Aleksandrovič Klimov
0ce21ae92f
Merge pull request #9167 from Icinga/feature/backport-gh-actions-2.12
Backport .github/workflows to support/2.12
2022-01-10 13:36:03 +01:00
Julian Brost
40eb116c87
Merge pull request #9140 from Icinga/bugfix/mysql-schema-versions-2.12
Make MySQL schema version in full schema file and upgrade files consistent (2.12)
2022-01-10 09:55:01 +01:00
Alexander Aleksandrovič Klimov
dd1e01ca70 GHA: drop SUSE 15.2 and add 15.3 2022-01-07 14:57:32 +01:00
Alexander Aleksandrovič Klimov
3bd8427041 GHA: Add Ubuntu impish 2022-01-07 14:57:32 +01:00
Alexander A. Klimov
781c7adf22 GHA: Raspbian: install more recent QEMU
to workaround "semop(1): encountered an error: Function not implemented".
2022-01-07 14:57:32 +01:00
Alexander Aleksandrovič Klimov
b9c569d455 GHA: add Raspbian bullseye 2022-01-07 14:57:32 +01:00
Alexander Aleksandrovič Klimov
fc86b8167b Put -latomic to the other -ls
to make it compiling on Raspberry Pi OS bullseye.
2022-01-07 14:57:32 +01:00
Alexander Aleksandrovič Klimov
899bdebedd GHA: add Fedora 35 2022-01-07 14:57:32 +01:00
Alexander Aleksandrovič Klimov
f28b707a57 GHA: drop Fedora 33
It's EOL.
2022-01-07 14:57:32 +01:00
Alexander Aleksandrovič Klimov
f57fc9ecd8 GHA: drop EOL Ubuntu groovy 2022-01-07 14:57:32 +01:00
Alexander A. Klimov
fddc68224f Split GitHub actions
... to allow to re-run a minimum.
2022-01-07 14:57:32 +01:00
Alexander A. Klimov
483e28c261 GitHub actions: also build on Debian Bullseye 2022-01-07 14:57:32 +01:00
Julian Brost
5d39f3bb69 Revert "GHA: drop EOL Ubuntu groovy"
This reverts commit fb4ca2e256550a3d9e86decb8d43307153e386a8.
2022-01-07 14:57:32 +01:00
Alexander Aleksandrovič Klimov
fb0c2768cf
Merge pull request #9166 from Icinga/probot/sync-changelog/support/2.12/8552186337e0b20d09c9f32c0f2abca4171a0d37
CHANGELOG.md: add v2.11.11
2022-01-05 17:01:07 +01:00
Noah Hilverling
ba1644ec6b CHANGELOG.md: add v2.11.11 2022-01-05 10:01:47 +00:00
Alexander Aleksandrovič Klimov
8552186337
Merge pull request #9165 from Icinga/Al2Klimov-patch-4
GHA: drop EOL Ubuntu groovy
2022-01-05 11:01:31 +01:00
Alexander Aleksandrovič Klimov
fb4ca2e256
GHA: drop EOL Ubuntu groovy 2022-01-04 19:11:04 +01:00
Alexander A. Klimov
e9e555468d Handle "type" key in dicts being part of object state attrs
i.e. the confusion of the state file deserializator with e.g. `"type":32` on startup.
That would unexpectedly restore (the now ignored) null (not `{"type":32}`) as there's no type "32".

refs #8186
2022-01-04 17:17:20 +01:00
Julian Brost
d8cf80e996 third-party: update GetGitRevisionDescription CMake module
The new version includes functionality to prevent using version information
from parent directories of the source root directory.

wget -O third-party/cmake/GetGitRevisionDescription.cmake https://raw.githubusercontent.com/rpavlik/cmake-modules/main/GetGitRevisionDescription.cmake
wget -O third-party/cmake/GetGitRevisionDescription.cmake.in https://raw.githubusercontent.com/rpavlik/cmake-modules/main/GetGitRevisionDescription.cmake.in
2022-01-03 18:37:34 +01:00
Julian Brost
a379f6e08c Make MySQL schema version in full schema file and upgrade files consistent
In the 2.12.6 release, the full schema file sets the version to 1.14.3, whereas
the latest available upgrade file 2.11.0.sql sets it to 1.15.0. Therefore, ship
a new upgrade file 2.12.7.sql for all users who imported their schema with
version 2.11.0 or later and never performed an upgrade since then. Their
databases incorrectly state schema version 1.14.3 and is bumped to the correct
version 1.15.0 by the upgrade. Additionally, the version number in the full
schema is also bumped to the correct version 1.15.0.
2021-12-16 16:04:54 +01:00
Alexander A. Klimov
eb71fb7529 Avoid "type" key in dicts being part of object state attrs
not to confuse the state file deserializator with e.g. `"type":32` on startup.
That would unexpectedly restore null (not `{"type":32}`) as there's no type "32".

refs #8186
2021-12-13 17:56:12 +01:00
Noah Hilverling
e6d9f95a13
Merge pull request from GHSA-cxfm-8j5v-5qr2
Add TLS server certificate validation to ElasticsearchWriter, GelfWriter and InfluxdbWriter (v2)
2021-08-19 13:52:29 +02:00
Noah Hilverling
88ed37454b Add 2.12.6 changelog and bump VERSION v2.12.6 2021-08-18 17:41:01 +02:00
Julian Brost
b7dd909a30 GelfWriter: show error message of exceptions 2021-08-17 16:38:54 +02:00
Julian Brost
6db8795ca4 InfluxdbWriter: actually verify TLS server certificates
And add a new option ssl_insecure_noverify to explicitly disable it if desired.
2021-08-17 16:38:39 +02:00
Julian Brost
d7133ae429 GelfWriter: actually verify TLS server certificates
And add a new option insecure_noverify to explicitly disable it if desired.
2021-08-17 16:33:18 +02:00
Julian Brost
bf535969ac ElasticsearchWriter: actually verify TLS server certificates
And add a new option insecure_noverify to explicitly disable it if desired.
2021-08-17 16:33:18 +02:00
Julian Brost
8910abc588 Enable hostname verification in UnbufferedAsioTlsStream 2021-08-17 16:33:18 +02:00
Alexander Aleksandrovič Klimov
5eeb434f3b
Merge pull request #8906 from Icinga/probot/sync-changelog/241b2be0ec51fff0012be5f439e5a3f4f78a4403
CHANGELOG.md: add v2.11.10
2021-07-15 18:20:16 +02:00
Julian Brost
dc6d79f3f4 CHANGELOG.md: add v2.11.10 2021-07-15 10:27:18 +00:00
Alexander Aleksandrovič Klimov
241b2be0ec
Merge pull request #8904 from Icinga/Al2Klimov-patch-3
Update .mailmap
2021-07-15 12:27:06 +02:00
Alexander Aleksandrovič Klimov
693d4e3962
Update .mailmap 2021-07-15 11:27:32 +02:00
Julian Brost
31545cbe65
Merge pull request from GHSA-98wp-jc6q-x5q5
API: hide ApiListener#ticket_salt (2.12)
2021-07-15 11:13:35 +02:00