sahvx655-wq created FELIX-6844:
----------------------------------
Summary: Implement self-healing recovery mechanism for
FelixDispatchQueue thread in EventDispatcher
Key: FELIX-6844
URL: https://issues.apache.org/jira/browse/FELIX-6844
Project: Felix
Issue Type: Bug
Components: Framework
Reporter: sahvx655-wq
The {{EventDispatcher}} uses a single background thread
({{{}FelixDispatchQueue{}}}) for asynchronous event delivery. If this thread
unexpectedly terminates due to runtime errors (e.g., {{{}OutOfMemoryError{}}},
{{{}StackOverflowError{}}}, or unhandled exceptions), asynchronous event
processing permanently stops, leaving the system in a degraded state with no
automatic recovery.
This change introduces a controlled self-healing mechanism to detect a dead
dispatcher thread and restart it safely.
If {{FelixDispatchQueue}} is found to be non-alive during
{{{}fireEventAsynchronously(){}}}, the system triggers a controlled restart
process. To avoid restart loops, recovery is limited using a maximum retry
count, cooldown period, and backoff delay. If the retry limit is exceeded,
auto-recovery is disabled and an error is logged to prevent further resource
exhaustion.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)