13818 Commits

Author SHA1 Message Date
Yonas Habteab
9a9c0a1fe0
Merge pull request #10343 from Icinga/test-formatdatetime-32bit-2.14
tests: fix FormatDateTime with 32-bit time_t
v2.14.5
2025-02-05 15:12:30 +01:00
Julian Brost
4aa4a0df2f Mention #10343 in changelog for 2.14.5
The problem was only noticed after the changelog already got merged, hence this
has to be added retroactively.
2025-02-05 13:15:10 +01:00
Julian Brost
af96e17295 tests: fix FormatDateTime with 32-bit time_t
With a 32-bit time_t, two checks in the FormatDateTime test case didn't work
properly so far:

1. Every time_t value can be represented by struct tm, hence the test makes no
   sense on such platforms and is now disabled there similar to how it's
   already done with other checks in the same function.
2. std::nextafter(2147483647, +double_limit::infinity())) results in something
   like 2147483647.000000238 which simply results in the limit when cast back
   to an integer type, so it didn't actually test the overflow. This is fixed
   by an additional std::ceil()/std::floor().
2025-02-05 13:09:47 +01:00
Julian Brost
85508299f1
Merge pull request #10341 from Icinga/icinga-2.14.5
Release v2.14.5
2025-02-05 08:56:41 +01:00
Julian Brost
6e545a531b
Merge pull request #10339 from Icinga/fix-perf-data-normalization
PerfData: Don't discard min/max values even if crit/warn thresholds aren’t given
2025-02-04 17:57:05 +01:00
Julian Brost
aeee2ca092 Release v2.14.5 2025-02-04 15:28:41 +01:00
Julian Brost
0fe1632c71
Merge pull request #10337 from Icinga/do-not-close-connection-in-request-cert-handler-214
Don't abruptly close anonymous connections
2025-02-04 15:14:26 +01:00
Julian Brost
641d979eb1
Merge pull request #10336 from Icinga/support-windows-server
Add dev docs on windows server
2025-02-04 13:55:33 +01:00
Maciej Dems
56116d2218 Fix missing values in PerfData normalization 2025-02-04 13:53:45 +01:00
Maciej Dems
3e616c15ff Correct tests checks for icinga_perfdata 2025-02-04 13:53:45 +01:00
Julian Brost
0628b08116
Merge pull request #10335 from Icinga/missing-x-for-mail-notification
Document `mail-{host,service}-notification` `-X` option
2025-02-04 13:45:16 +01:00
Julian Brost
4fc34aaed7
Merge pull request #10334 from Icinga/remove-rhel7-instructions
Remove RHEL 7 from installation instructions
2025-02-04 13:43:09 +01:00
Yonas Habteab
c026f03ee2 Don't abruptly close anonymous connections
This was mistakenly introduced with PR #7686 due to too many open
connections (#7680). This was wrong in the sense that closing the
connection is simply out of place here and should have been handled
differently. After we revised the RPC connection disconnect procedure
with `v2.14.4`, it becomes clear why it is wrong, because the connection
is closed abruptly before the corresponding response (`result`) has
even been written. Now if you remove the disconnect here, shouldn't the
issue #7680 occur again, you ask? The answer is no, because we now also
have a maximum timeout of `10s` for anonymous connections, after which
they are automatically closed. Thanks to the introduction of this
timeout by @julianbrost in #8479, this `Disconnect()` call has become
superfluous.
2025-02-04 13:15:41 +01:00
Alexander A. Klimov
fd8f318418 21-development.md: support Windows Server
That OS need NetFx3ServerFeatures to be enabled before NetFx3.
2025-02-04 11:53:12 +01:00
Alexander Aleksandrovič Klimov
a0d0b36c10 21-development.md: fix indentation
The last two points need to be children of the second one, but currently GitHub weights them equally.
2025-02-04 11:51:27 +01:00
Yonas Habteab
06f6ea442e Document mail-{host,service}-notification -X option 2025-02-04 11:44:06 +01:00
Angel Roman
5f55c58959 Remove RHEL 7 from installation instructions 2025-02-04 11:40:51 +01:00
Julian Brost
3a258ad7ab
Merge pull request #10324 from Icinga/update-migration-docs-2.14
Include Nagios in the migration docs
2025-01-31 11:52:38 +01:00
Blerim Sheqa
0ea88ffc3b Include Nagios in the migration docs 2025-01-24 14:02:40 +01:00
Julian Brost
ea6ebd2e95
Merge pull request #10313 from Icinga/Icinga-2.14.4
Icinga 2.14.4
v2.14.4
2025-01-23 11:53:08 +01:00
Alexander A. Klimov
6c38447ed1 Icinga 2.14.4 2025-01-22 14:43:55 +01:00
Julian Brost
a8c9192e41
Merge pull request #10314 from Icinga/win-configure-cmake-opts214
tools/win32/configure*.ps1: allow custom $CMAKE_ARGS (JSON array)
2025-01-22 12:04:52 +01:00
Alexander A. Klimov
7866308e31 tools/win32/configure*.ps1: allow custom $CMAKE_ARGS (JSON array) 2025-01-22 10:07:44 +01:00
Alexander Aleksandrovič Klimov
c538324040
Merge pull request #10304 from Icinga/win-progfiles-icinga2-var214
On Windows, don't create C:\Program Files\Icinga2\var during MSI build
2025-01-16 14:03:58 +01:00
Alexander A. Klimov
e241a240a8 On Windows, don't create C:\Program Files\Icinga2\var during MSI build 2025-01-16 12:04:12 +01:00
Yonas Habteab
ebac52b830
Merge pull request #10300 from Icinga/error-timestamp-out-of-range-53323-214
IDO: timestamp out of range errors
2025-01-14 12:06:18 +01:00
Alexander A. Klimov
32d604f954 Ido*sqlConnection#FieldToEscapedString(): don't write out of range time
MySQL's FROM_UNIXTIME() NULLs ts <1970, errors for >2038.
Postgres' TO_TIMESTAMP() errors for all ts not between 4713BC - 294276AD.
2025-01-14 10:05:36 +01:00
Alexander A. Klimov
ecce7f8dcb Ido*sqlConnection#FieldToEscapedString(): don't overflow timestamps > long 2025-01-14 10:05:36 +01:00
Yonas Habteab
2c0925cedd
Merge pull request #10293 from Icinga/graceful-tls-disconnect-214
Add a dedicated method for disconnecting TLS connections
2025-01-14 10:03:22 +01:00
Yonas Habteab
ee98a9e335
Merge pull request #10298 from Icinga/timestamp-serialization-issues
IcingaDB: limit several numbers not to crash Go daemon
2025-01-13 16:27:27 +01:00
Yonas Habteab
f53e5343c8
Merge pull request #10292 from Icinga/rpc-sync-failures
Runtime RPC sync failures
2025-01-13 14:44:02 +01:00
Alexander A. Klimov
cf895e7e3f IcingaDB::TimestampToMilliseconds(): limit output to four year digits
Too high timestamps may overflow uint64_t (and the YYYY format) and negative
ones don't fit into uint64_t. Those may crash our Go daemon.
2025-01-13 14:30:54 +01:00
Alexander A. Klimov
c21e99a15c IcingaDB#SerializeState(): limit execution_time and latency to 2^32-1
not to write higher values into Redis than the Icinga DB schema can hold.
This fixes yet another potential Go daemon crash.
2025-01-13 14:30:32 +01:00
Yonas Habteab
14b854d891
Merge pull request #10296 from Icinga/comment-loading-nullptr-deference
Address comment loading where host reference is not found gracefully
2025-01-13 13:17:40 +01:00
Yonas Habteab
7defb0c942
Merge pull request #10295 from Icinga/do-not-write-new-messages-on-shutdown
JsonRpcConnection: don't write new messages on shutdown
2025-01-13 13:11:17 +01:00
Yonas Habteab
9b3e97e067
Merge pull request #10294 from Icinga/log-slow-http-rpc-processing-214
Log slow HTTP/RPC processing stats
2025-01-13 12:44:22 +01:00
Alexander A. Klimov
9887ad79a0 AUTHORS: add Yannick Martin <yannick.martin@ovhcloud.com> 2025-01-13 11:19:42 +01:00
Yannick Martin
ec2645d33c icinga2: address comment loading where host reference is not found
address #9752: check if host reference is valid
2025-01-13 11:19:42 +01:00
Alexander Aleksandrovič Klimov
ebf905a220 JsonRpcConnection: don't write new messages on shutdown
In fact, this is already done for the outer loop (for each bulk), just not yet for the inner one (for each message of a bulk). So once the remote signals EOF, don't try to process the remaining queue until write error (which can't be associated with a particular message anyway, due to buffering), but just let the peer go. Flush already half-written messages, though, if possible.
2025-01-13 11:17:23 +01:00
Alexander A. Klimov
2bc1c8e1dc Document Timeout 2025-01-13 10:42:36 +01:00
Alexander A. Klimov
e544fef7a2 Timeout: explicitly delete #Timeout(const Timeout&), #Timeout(Timeout&&), #operator=(const Timeout&), #operator=(Timeout&&) 2025-01-13 10:42:36 +01:00
Alexander A. Klimov
d956920bd7 Move Timeout instances from heap to stack 2025-01-13 10:42:36 +01:00
Alexander A. Klimov
1703f99d14 Don't call Timeout#Cancel() where Timeout#~Timeout() is called 2025-01-13 10:42:36 +01:00
Alexander A. Klimov
fe1420523a Timeout#~Timeout(), #Cancel(): support boost::asio::io_context running on multiple threads 2025-01-13 10:42:36 +01:00
Alexander A. Klimov
a47508b7b3 Timeout#Timeout(): drop unnecessary template parameters 2025-01-13 10:42:36 +01:00
Alexander A. Klimov
d69291739f While using Timeout, don't unnecessarily keep the strand alive via smart pointer 2025-01-13 10:42:36 +01:00
Alexander A. Klimov
c23bd4c186 Test Timeout 2025-01-13 10:42:36 +01:00
Alexander A. Klimov
ff5ae18b9c Timeout: use a plain callback, not an unnecessary coroutine 2025-01-13 10:42:36 +01:00
Alexander A. Klimov
f839707c4a Timeout#Timeout(): don't pass yield_context to callback
It's not used. Also, the callback shall run completely at once. This ensures that it won't (continue to) run once another coroutine on the strand calls Timeout#Cancel().
2025-01-13 10:42:36 +01:00
Yonas Habteab
a88d6988b4 JsonRpcConnection: Log message processing time stats
Co-Authored-By: Julian Brost <julian.brost@icinga.com>
2025-01-13 10:39:23 +01:00