Yonas Habteab
e7c5554d87
Test: Add multiline PerfData test case
2023-04-05 15:44:13 +02:00
Yonas Habteab
24d95e1178
PluginUtility: Fix PerfData don't get parsed correctly
...
The problem was that some PerfData labels contained several whitespace characters,
not just one, and therefore it was parsed incorrectly in `SplitPerfdata()`. I.e. the condition
in line 144 checks whether the first and last character is a normal quote, but since the
label can contain spaces at the beginning and at the end respectively, this caused the problems.
This PR fixes the problem by removing all occurring whitespace from the beginning and end,
before starting to parse the actual label.
2023-04-05 15:37:54 +02:00
Alexander A. Klimov
bcd16cbfb0
Rewrite Dependency redundancy groups docs
2023-04-05 14:46:35 +02:00
Alexander A. Klimov
a66ace7245
Introduce SharedMemory
2023-04-04 13:40:27 +02:00
Alexander A. Klimov
c41e5fd05d
Support multiple redundant Timer#Start() calls
...
so that only the first one changes l_AliveTimers (as in Timer#Stop()).
2023-04-04 10:35:22 +02:00
Alexander A. Klimov
298f3b1973
Timer: actually support non-periodic timers
2023-04-04 10:35:22 +02:00
Alexander A. Klimov
3933502739
Timer#Start(): don't unnecessarily unlock/lock l_TimerMutex
...
via new Timer#InternalRescheduleUnlocked()
2023-04-04 10:35:22 +02:00
Alexander A. Klimov
13b9cfda41
Timer::TimerThreadProc(): don't unnecessarily unlock and lock l_TimerMutex
2023-04-04 10:35:22 +02:00
Alexander A. Klimov
1badbab002
Timer::TimerThreadProc(): keep a Timer alive while it's running
...
to prevent the case: Timer callback destroys parent object -> destroys
Timer -> ~Timer() -> Stop(true) -> waits for the Timer callback to finish
-> deadlock.
2023-04-04 10:35:22 +02:00
Alexander A. Klimov
9b00c1c4dd
Timer: drop unnecessary base class
2023-04-04 10:35:22 +02:00
Alexander A. Klimov
24681b30f6
Make Timer::Ptr a std::shared_ptr
2023-04-04 10:35:22 +02:00
Alexander A. Klimov
9ee4d08722
Make Timer#Timer() private to enforce Timer::Create() usage
2023-04-04 10:35:22 +02:00
Alexander A. Klimov
21b68455ce
Use Timer::Create() instead of new Timer()
...
git ls-files -z |xargs -0 perl -pi -e 's/\bnew Timer\b/Timer::Create/g'
ex. in Timer::Create() itself.
2023-04-04 10:35:20 +02:00
Alexander A. Klimov
bb1f574b69
Introduce factory method Timer::Create()
2023-04-04 10:35:10 +02:00
Julian Brost
f3b148517f
Merge pull request #9714 from Icinga/CheckResultReader
...
Remove CheckResultReader which has been deprecated for 5 major versions
2023-04-03 16:31:19 +02:00
Alexander A. Klimov
2948d023bf
Windows MSI: don't bundle NSClient++
2023-04-03 14:36:30 +02:00
Alexander A. Klimov
6c810ddd96
Windows agent wizard: remove checkbox "Install/Update bundled NSClient++"
2023-04-03 14:36:30 +02:00
Alexander A. Klimov
973b701400
Docs: conceal that NSClient++ is bundled on Windows
2023-04-03 14:36:20 +02:00
Alexander A. Klimov
35248b1b63
Code style
2023-04-03 13:39:08 +02:00
Alexander A. Klimov
cc872dac1f
Remove CheckResultReader which has been deprecated for 5 major versions
2023-04-03 11:39:21 +02:00
Julian Brost
41065e30c8
Merge pull request #9485 from Icinga/cxx17
...
Require GCC 7+ for C++17
2023-03-31 14:06:55 +02:00
Julian Brost
7a7902cea7
Merge pull request #9715 from Icinga/StatusDataWriter
...
Remove StatusDataWriter which has been deprecated for 5 major versions
2023-03-31 12:32:43 +02:00
Julian Brost
82f9e4312d
Merge pull request #9740 from Icinga/freeze-globals
...
Freeze globals namespace during config load
2023-03-31 10:51:26 +02:00
Julian Brost
e87e1ea73f
Freeze globals namespace during config load
...
This allows for a faster config load due to less locking required.
The change is slightly backwards-incompatible. Before, you could manipulate the
globals namespace at a later stage, but disallowing this feels reasonable for
the performance benefit alone (which especially shows on many-core machines).
Apart from that, it's doubtful if doing so is even useful at all as the DSL
provides no mechanism for you to synchronize your operations that may run in
parallel. The data structures itself are protected from race conditions, but
anything implemented on top of this may still be subject to race conditions.
And even if some user has a good reason for doing this, there's a feasible
workaround by creating your own namespace like globals.mutable and using that
instead.
2023-03-30 18:07:51 +02:00
Julian Brost
1665cc925e
Merge pull request #9738 from Icinga/TimerThreadProc
...
Document why Timer::TimerThreadProc() can use Timer members during Timer#~Timer() call
2023-03-30 16:03:43 +02:00
Alexander A. Klimov
335688909b
Document why Timer::TimerThreadProc() can use Timer members during Timer#~Timer() call
2023-03-29 18:04:19 +02:00
Alexander A. Klimov
78b4dc6509
Remove unused Stream#Peek()
2023-03-24 18:18:13 +01:00
Alexander A. Klimov
4c154f93dc
ApiListener#NewClientHandlerInternal(): on basic_socket#cancel() (due to timeout) don't ssl::stream#async_shutdown()
...
If a connection hangs for too long in ApiListener#NewClientHandler(),
ApiListener#AddConnection()'s Timeout calls boost::asio::basic_socket#cancel()
on that connection to trigger an exception which unwinds
ApiListener#NewClientHandler(). Previously that unwind could trigger a Defer
which called boost::asio::ssl::stream#async_shutdown() which extended the hang.
2023-03-21 10:57:40 +01:00
Silas
7f0aaf9b79
Update commands.conf
2023-03-13 12:47:39 +01:00
Julian Brost
66b039df9c
Merge pull request #9497 from Icinga/9249
...
Application::Exit(): don't exit(), but _exit(), even in debug build mode
2023-03-10 16:04:54 +01:00
Julian Brost
f47d7393c6
Merge pull request #9704 from Icinga/windows-perf-off
...
Don't include perfdata writers on Windows
2023-03-10 15:56:34 +01:00
Alexander A. Klimov
6414fd19f5
Checkable#ProcessCheckResult(): only clean up ack comments older than check result
...
Normally if for some reason an ack comment still exists on a checkable not
acked anymore, still clean it up. But while replaying log config objects
incl. ack comments come before check results and acks. I.e. 1) ack comment,
2) DOWN check result and 3) ack. Not 1) DOWN check result, 2) ack and 3) ack
comment. So the checkable is temporarily not acked, but already has the ack
comment. In this case the DOWN check result which is older than the ack
comment shall not clean up the latter.
2023-03-03 15:48:34 +01:00
Alexander A. Klimov
4662d4477b
Checkable#RemoveAckComments(): add optional comment entry time filter
2023-03-03 15:48:11 +01:00
Alexander A. Klimov
dceb29c742
Checkable#RemoveCommentsByType(): remove redundant parameter
2023-03-03 11:53:02 +01:00
Mattia Codato
912fdb9700
Fix update execution message discarded
...
refs Icinga#8616
2023-03-02 17:50:39 +01:00
Alexander Aleksandrovič Klimov
ca3c24b317
Merge pull request #9717 from Icinga/Al2Klimov-patch-4
...
ProcessSpawnImpl(): remove redundant _exit(128);
2023-03-02 16:47:50 +01:00
Alexander Aleksandrovič Klimov
bdda58175b
Update mail-host-notification.sh and mail-service-notification.sh
2023-03-02 14:24:02 +01:00
Silas
31710e1162
Added host.notes and service.notes output if specified
2023-03-02 14:24:02 +01:00
Alexander Aleksandrovič Klimov
55930c8042
ProcessSpawnImpl(): remove redundant _exit(128);
...
Now this if doesn’t _exit(128) by itself, but "return" to the outer if which immediately _exit(128)s.
2023-03-02 12:45:15 +01:00
Alexander A. Klimov
bbf2e80002
Remove StatusDataWriter which has been deprecated for 5 major versions
2023-03-01 17:16:28 +01:00
Julian Brost
cf517050bc
Merge pull request #9711 from Icinga/connect-cancel
...
Connect(): don't try next DNS record if operation is canceled
2023-03-01 15:49:53 +01:00
Alexander A. Klimov
79f1e0666a
Connect(): don't try next DNS record if operation is canceled
...
Instead return immediately to meet the caller's expectations.
2023-02-28 10:57:54 +01:00
Alexander Aleksandrovič Klimov
8281527c13
Merge pull request #9702 from Icinga/windows-ido-off
...
CMakeLists.txt: provide sane defaults for which subsystems to build
2023-02-23 19:02:33 +01:00
Alexander A. Klimov
5055d216a3
Don't include perfdata writers on Windows
...
Icinga DB, IDO and Livestatus are already not included.
2023-02-23 16:03:57 +01:00
Alexander Aleksandrovič Klimov
45e1c29935
Require CMake s/2.8.8/2.8.12/
...
because we can.
2023-02-23 15:49:20 +01:00
Alexander A. Klimov
260eb5c475
CMakeLists.txt: provide sane defaults for which subsystems to build
...
not to have to explicitly disable particular ones in multiple locations.
2023-02-23 14:54:57 +01:00
Alexander A. Klimov
9cdc353325
On Windows don't ship docs and images
2023-02-23 12:31:28 +01:00
Alexander A. Klimov
396a71c6a0
Repair unit tests
2023-02-21 17:49:26 +01:00
Edgar Fuß
20d7e1b5e6
Fix use of std::unordered_map::insert() as pointed out by Nathaniel Wesley Filardo in GitHup Pull Request #8999
2023-02-21 16:23:40 +01:00
Edgar Fuß
5bba609e60
Add missing #include
2023-02-21 16:23:40 +01:00