icinga2/lib/remote
Yonas Habteab 3af7cfe2ec JsonRpcConnection: Don't drop client from cache prematurely
PR #7445 incorrectly assumed that a peer that had already disconnected
and never reconnected was due to the endpoint client being dropped after
a successful socket shutdown. However, the issue at that time was that
there was not a single timeout guards that could cancel the `async_shutdown`
call, petentially blocking indefinetely. Although removing the client from
cache early might have allowed the endpoint to reconnect, it did not
resolve the underlying problem. Now that we have a proper cancellation
timeout, we can wait until the currently used socket is fully closed
before dropping the client from our cache. When our socket termination
works reliably, the `ApiListener` reconnect timer should attempt to
reconnect this endpoint after the next tick. Additionally, we now have
logs both for before and after socket termination, which may help
identify if it is hanging somewhere in between.
2025-01-08 16:30:36 +01:00
..
actionshandler.cpp Merge pull request #7958 from Icinga/bugfix/api-500-404-7956 2023-01-24 15:08:17 +01:00
actionshandler.hpp AuthenticatedApiUser name refactor 2020-07-03 11:17:36 +02:00
apiaction.cpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
apiaction.hpp Clarify difference between API actions and functions in their docstrings 2020-11-12 14:23:41 +01:00
apifunction.cpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
apifunction.hpp Clarify difference between API actions and functions in their docstrings 2020-11-12 14:23:41 +01:00
apilistener-authority.cpp Unify Application::GetStartTime() and drop GetMainTime() 2020-02-11 17:26:15 +01:00
apilistener-configsync.cpp ApiListener: Sync runtime configs in order 2025-01-07 11:07:46 +01:00
apilistener-filesync.cpp Fix config sync after freezing namespaces 2023-02-01 12:29:47 +01:00
apilistener.cpp Move Timeout instances from heap to stack 2025-01-07 18:20:50 +01:00
apilistener.hpp ApiListener: Sync runtime configs in order 2025-01-07 11:07:46 +01:00
apilistener.ti Introduce DEFAULT_CONNECT_TIMEOUT 2021-07-27 21:57:02 +02:00
apiuser.cpp Fix file endings 2023-05-17 18:05:13 +02:00
apiuser.hpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
apiuser.ti Allow to create api user w/ password 2020-10-09 20:15:44 +02:00
CMakeLists.txt /v1/debug/malloc_info: call malloc_info(3) if available 2024-08-09 12:59:25 +02:00
configfileshandler.cpp De-couple package and stage name validation 2021-08-02 15:40:14 +02:00
configfileshandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
configobjectslock.cpp Introduce RAII style ObjectNameLock class 2024-06-13 11:26:19 +02:00
configobjectslock.hpp Introduce RAII style ObjectNameLock class 2024-06-13 11:26:19 +02:00
configobjectutility.cpp DependencyGraph: use ConfigObject*, not Object* 2024-12-17 18:33:05 +01:00
configobjectutility.hpp Just get paths from existing objects for modification and deletion 2022-11-28 16:39:16 +01:00
configpackageshandler.cpp De-couple package and stage name validation 2021-08-02 15:40:14 +02:00
configpackageshandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
configpackageutility.cpp ConfigPackageUtility: Don't reset ongoing package updates on config validation success and process is going to be reloaded 2022-03-30 09:42:22 +02:00
configpackageutility.hpp ConfigPackageUtility: Don't reset ongoing package updates on config validation success and process is going to be reloaded 2022-03-30 09:42:22 +02:00
configstageshandler.cpp Fix file endings 2023-05-17 18:05:13 +02:00
configstageshandler.hpp ConfigStagesHandler: Don't allow concurrent package updates anymore 2022-03-30 09:42:22 +02:00
consolehandler.cpp Prevent calls to command API while the configuration is reloading. 2023-08-09 08:45:04 +02:00
consolehandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
createobjecthandler.cpp Don't allow to modify/create/delete an object concurrently 2024-06-13 11:26:19 +02:00
createobjecthandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
deleteobjecthandler.cpp Don't allow to modify/create/delete an object concurrently 2024-06-13 11:26:19 +02:00
deleteobjecthandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
endpoint.cpp Use std::mutex, not boost::mutex 2021-02-03 09:54:57 +01:00
endpoint.hpp Use std::mutex, not boost::mutex 2021-02-03 09:54:57 +01:00
endpoint.ti Introduce Endpoint#capabilities 2020-10-19 13:04:20 +02:00
eventqueue.cpp Fix compiler warnings don't move local variables 2022-02-22 17:51:43 +01:00
eventqueue.hpp Use std::mutex, not boost::mutex 2021-02-03 09:54:57 +01:00
eventshandler.cpp EventsHandler: Drop superfluous CpuBoundWork usage 2024-02-09 12:00:50 +01:00
eventshandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
filterutility.cpp FilterUtility::GetFilterTargets(): don't run filter for specific object(s) for all objects 2023-12-13 16:02:50 +01:00
filterutility.hpp FilterUtility: Replace some nested raw pointers by our unique_ptr<X>* 2022-11-28 14:50:54 +01:00
httphandler.cpp Fix file endings 2023-05-17 18:05:13 +02:00
httphandler.hpp Quality: Purge old HTTP code in lib/remote 2019-05-24 15:50:43 +02:00
httpserverconnection.cpp Merge pull request #10005 from Icinga/graceful-tls-disconnect 2024-12-12 16:20:14 +01:00
httpserverconnection.hpp HttpServerConnection: Don't spawn useless coroutines 2024-11-14 16:47:01 +01:00
httputility.cpp Use content_length method for setting the Content-Length header 2020-12-22 16:27:38 +01:00
httputility.hpp Quality: Purge old HTTP code in lib/remote 2019-05-24 15:50:43 +02:00
i2-remote.hpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
infohandler.cpp Fix file endings 2023-05-17 18:05:13 +02:00
infohandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
jsonrpc.cpp Fix compiler warnings don't move local variables 2022-02-22 17:51:43 +01:00
jsonrpc.hpp Replace std::shared_ptr<AsioTlsStream> with Shared<AsioTlsStream>::Ptr 2019-10-21 16:12:35 +02:00
jsonrpcconnection-heartbeat.cpp Fix file endings 2023-05-17 18:05:13 +02:00
jsonrpcconnection-pki.cpp RequestCertificateHandler(): also renew if CA needs a renewal 2023-12-18 15:28:11 +01:00
jsonrpcconnection.cpp JsonRpcConnection: Don't drop client from cache prematurely 2025-01-08 16:30:36 +01:00
jsonrpcconnection.hpp JsonRpcConnection: Log message processing time stats 2024-11-27 09:57:38 +01:00
mallocinfohandler.cpp /v1/debug/malloc_info: call malloc_info(3) if available 2024-08-09 12:59:25 +02:00
mallocinfohandler.hpp /v1/debug/malloc_info: call malloc_info(3) if available 2024-08-09 12:59:25 +02:00
messageorigin.cpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
messageorigin.hpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
modifyobjecthandler.cpp Don't allow to modify/create/delete an object concurrently 2024-06-13 11:26:19 +02:00
modifyobjecthandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
objectqueryhandler.cpp DependencyGraph: use ConfigObject*, not Object* 2024-12-17 18:33:05 +01:00
objectqueryhandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
pkiutility.cpp Fix file endings 2023-05-17 18:05:13 +02:00
pkiutility.hpp CLI: Allow to list removed CSRs with 'ca list' 2019-06-07 10:33:55 +02:00
statushandler.cpp Fix file endings 2023-05-17 18:05:13 +02:00
statushandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
templatequeryhandler.cpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
templatequeryhandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
typequeryhandler.cpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
typequeryhandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
url-characters.hpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
url.cpp Fix file endings 2023-05-17 18:05:13 +02:00
url.hpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
variablequeryhandler.cpp Fix file endings 2023-05-17 18:05:13 +02:00
variablequeryhandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
zone.cpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
zone.hpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
zone.ti Don't allow to change object parent,host/service_name at runtime 2022-09-09 18:26:28 +02:00