Julian Brost
30b4b20280
Merge pull request #8620 from Icinga/feature/fedora33
...
GitHub actions: build Fedora v33
2021-03-04 17:48:50 +01:00
Alexander A. Klimov
b81c3dea99
GitHub actions: build openSUSE v15.2
2021-03-04 17:48:42 +01:00
Alexander A. Klimov
4457719035
GitHub actions: build SLES v15.2
2021-03-04 17:47:33 +01:00
Alexander A. Klimov
4eddac0e64
Icinga DB: re-insert only changed object attributes
2021-03-04 17:29:39 +01:00
Alexander A. Klimov
f60758dc7c
JsonRpcConnection: always log errors
2021-03-04 16:23:07 +01:00
Alexander Aleksandrovič Klimov
618c778430
Merge pull request #8649 from Icinga/bugfix/icingadb-deduplicate-cvs
...
Icinga DB: HMSET the same fields only once
2021-03-03 16:57:27 +01:00
Noah Hilverling
0b55073964
Merge pull request #8641 from Icinga/bugfix/icingadb-types
...
Icinga DB: don't write all types
2021-03-03 14:47:33 +01:00
Julian Brost
c5626cb793
Stacktrace test: try to prevent inlining even harder
...
- Explicitly disable optimizations for MSVC
- Make stack_test_func_a bigger
2021-03-01 16:08:06 +01:00
Julian Brost
1742e31225
Add comments to stack trace formatter and test case
2021-03-01 14:07:11 +01:00
Julian Brost
3ad9d3316c
Compile with -D_GNU_SOURCE
...
Needed by `boost::stacktrace` for `_Unwind_Backtrace()`.
2021-03-01 14:07:11 +01:00
Julian Brost
cdfcef4d63
CMakeLists: use HAVE_LIBEXECINFO only after actually checking for it
...
So far, the check that actually sets HAVE_LIBEXECINFO was executed after
it was already used to add dependencies.
2021-03-01 14:07:11 +01:00
Julian Brost
24f6283362
Add a test case for the stack trace formatter
2021-03-01 14:07:11 +01:00
Julian Brost
b931194f59
Use backtrace_symbols() when printing stack traces on FreeBSD
...
Unfortunately, the symbol resolution of boost::stacktrace is broken on
FreeBSD, therefore fall back to using backtrace_symbols() to print the
stack trace saved by Boost.
Additionally, -D_GNU_SOURCE is required on FreeBSD for the
_Unwind_Backtrace function used by boost::stacktrace.
2021-03-01 14:07:09 +01:00
Julian Brost
7d3885d05c
Crash handlers: use more compact string representation
2021-03-01 14:06:47 +01:00
Julian Brost
710cd7287f
Begin crash log for SIGABRT with error message and timestamp
...
This makes the format more similar to what the uncaught C++ and SEH
exception handlers write. Previously there was no indication in the
crash log that a SIGABRT happened.
2021-03-01 14:06:47 +01:00
Julian Brost
f084cdecbe
Windows: require at least MSVC 19.20 to build
...
Older versions of MSVC fail to rethrow an unhandled C++ exception (using
`throw;`) in the termination handler (`std::set_terminate`), however
Icinga relies on this behavior in its crash handler
(`Application::ExceptionHandler`).
2021-03-01 14:06:47 +01:00
Julian Brost
532d37624f
docs: mention use of boost::stacktrace
2021-03-01 14:06:47 +01:00
Julian Brost
1ad233da86
Add some comments to __cxa_throw
...
Maybe this will save the next person who has to look at this code some
time. Please don't blame me for the implementation, I'm just trying to
reconstruct what it does.
2021-03-01 14:06:47 +01:00
Julian Brost
e60dd51284
Restructure stack and context trace selection in DiagnosticInformation and document behavior
...
The logic for selecting the traces to print stays the same, but there
are fewer nested ifs now. This changes the format of the returned string
a bit by adding a heading for both traces.
2021-03-01 14:06:47 +01:00
Julian Brost
7f2868ab36
Add documentation for cast_exception function
2021-03-01 14:06:47 +01:00
Julian Brost
15a16b23d9
Pass fallback stacktrace to DiagnosticInformation in terminate handler
...
By default, DiagnosticInformation uses the stack trace saved when the
exception was thrown, but this mechanism is not in use on Windows.
Gathering a stacktrace in the terminate handler serves as a fallback.
2021-03-01 14:06:47 +01:00
Julian Brost
5cb7c7cc09
Replace icinga::StackTrace with boost::stacktrace::stacktrace
...
Provides roughly the same functionality but works better on certain
platforms (especially Windows) and is less code to maintain.
2021-03-01 14:06:44 +01:00
Julian Brost
e11b4b7b55
Print details in uncaught SEH exception handler
2021-03-01 14:05:27 +01:00
Julian Brost
68e4b807d1
Move error message and time to the beginning of the SEH crash log
...
This is more similar to the normal exception crashlog which also states
the problem and time at the beginning of the file.
2021-03-01 14:05:27 +01:00
Julian Brost
0db59bad83
Use boost::stacktrace instead of custom implementation in Windows SEH filter
2021-03-01 14:05:27 +01:00
Julian Brost
f8b7a1511b
Run termination handler for uncaught C++ exceptions on Windows
...
On Windows, the termination handler is executed for uncaught C++
exceptions unless a SEH unhandled exception filter is also set. In this
case, this filter has to explicitly chain the default filter to keep
this behavior.
2021-03-01 14:05:27 +01:00
Alexander A. Klimov
1c5f69683f
l_AppVersionInt: respect versions like r2.12.0, not just v2.12.0
...
refs #8628
2021-02-25 15:31:07 +01:00
Alexander A. Klimov
ed57d31400
Icinga DB: HMSET the same fields only once
2021-02-24 13:37:36 +01:00
Noah Hilverling
0b26515c34
Merge pull request #8636 from Icinga/feature/sles151
...
GitHub actions: drop SLES v15.1
2021-02-23 13:30:04 +01:00
Noah Hilverling
82ddb0d82b
Merge pull request #8637 from Icinga/feature/opensuse151
...
GitHub actions: drop openSUSE v15.1
2021-02-23 13:29:46 +01:00
Alexander A. Klimov
d4a91ec50d
Icinga DB: don't write all types
2021-02-17 12:41:45 +01:00
Alexander A. Klimov
8ca701d706
GitHub actions: drop openSUSE v15.1
2021-02-15 13:51:40 +01:00
Alexander A. Klimov
959328e2c3
GitHub actions: drop SLES v15.1
2021-02-15 13:44:33 +01:00
Alexander A. Klimov
e0c13401f7
Ido*sqlConnection#InternalDeactivateObject(): mark object inactive also in memory
...
Previously:
1. You delete an object from a config file
2. You reload Icinga
3. Icinga fetches all objects and whether they're active from the IDO
4. Icinga recognizes that the just deleted object doesn't exist anymore
5. Icinga marks it as inactive in the IDO, but not in memory
6. You re-create the just deleted object via API
7. Icinga still thinks it's active and doesn't activate it - it's invisible
refs #8584
2021-02-08 16:57:15 +01:00
XnS
c0e4e5d2d5
Added new option ignore-stc for ssl_cert to ITL
2021-02-08 15:29:53 +00:00
Alexander Aleksandrovič Klimov
aa4f53009e
Merge pull request #8614 from Icinga/bugfix/runworker-exceptions
...
Improve handling of exceptions thrown by RunWorker
2021-02-08 16:22:35 +01:00
Julian Brost
54a8c7b434
Try to log useful information for exceptions thrown by RunWorker
2021-02-05 15:43:27 +01:00
Julian Brost
ddbad7937d
Merge pull request #8622 from Icinga/bugfix/dependency-ti-typo-8180
...
dependency.ti: fix typo
2021-02-05 11:49:03 +01:00
Alexander A. Klimov
ebfa73388f
dependency.ti: fix typo
...
refs #8180
2021-02-04 18:29:54 +01:00
Alexander A. Klimov
e9c7e67a9a
GitHub actions: build Fedora v33
2021-02-04 17:14:02 +01:00
Alexander Aleksandrovič Klimov
aa0baf6f69
Merge pull request #8099 from Icinga/feature/std-mutex
...
Use std::mutex, not boost::mutex
2021-02-04 10:19:04 +01:00
Alexander A. Klimov
9154aa17eb
Fix missing include
2021-02-03 09:54:57 +01:00
Alexander A. Klimov
c3388e9af6
Use std::mutex, not boost::mutex
2021-02-03 09:54:57 +01:00
Alexander Aleksandrovič Klimov
dbdfe189c0
Merge pull request #7092 from Icinga/bugfix/command-escape-windows-4849
...
Fix Windows command escape for \"
2021-02-01 11:20:44 +01:00
Julian Brost
56095b29f4
Add tests for Utility::EscapeCreateProcessArg
2021-01-29 15:15:43 +01:00
Alexander Aleksandrovič Klimov
32cae11175
Merge pull request #8613 from Icinga/bugfix/ido-built-in-checkcommand-overrides-crit-with-warn-state
...
IdoCheckTask: Don't override checkable critical with warn state
2021-01-28 14:26:10 +01:00
Alexander Aleksandrovič Klimov
b4e85235aa
Merge pull request #8020 from Icinga/bugfix/itl-mysql-s-h-8017
...
check_mysql: don't set -H if -s is given
2021-01-28 11:27:34 +01:00
Alexander Aleksandrovič Klimov
ca52366a61
Merge pull request #8602 from Icinga/bugfix/icingadb-activation-priority
...
Delay start of IcingaDB until most config objects are activated
2021-01-28 10:01:37 +01:00
Alexander Aleksandrovič Klimov
9a867c2c25
Merge pull request #8513 from Icinga/bugfix/notifications-downtime-change-in-timeperiod-8509
...
FireSuppressedNotifications(const Notification::Ptr&): don't send notifications while suppressed by checkable
2021-01-28 10:01:23 +01:00
Julian Brost
d7833a5977
Catch exceptions thrown by RunWorker on Windows
...
The same is already done on other platforms in line 529.
2021-01-27 15:48:28 +01:00