Aleksandr Popov created IGNITE-25649:
----------------------------------------
Summary: Duplicates in failures list during
ReliabilityTest#testFailover execution SYNC case
Key: IGNITE-25649
URL: https://issues.apache.org/jira/browse/IGNITE-25649
Project: Ignite
Issue Type: Bug
Components: thin client
Reporter: Aleksandr Popov
Attachments: image-2025-06-11-12-06-35-815.png
h3. Problem
When tests run with async = false, the {{failures}} list in
ReliableChannel#composeException accumulates duplicate
{{ClientConnectionException}} instances.
h3. Root Cause
# applyOnDefaultChannel was recently refactored:
** Old condition: {{partitionAwarenessEnabled}}
** New condition: {{shouldRetry}}
# With the new condition the flow now:
## Enters {{applyOnDefaultChannel}}
## Fails and triggers {{onChannelFailure}}
## Recursively re-enters {{applyOnDefaultChannel}}
# Each pass through {{applyOnDefaultChannel}} ends with
*throw composeException(failures);*
being executed. Because the same failure is added twice, the final composite
exception contains duplicates.
h3. Impact
* Tests that set {{async = false}} report duplicated identical
{{ClientConnectionException}} entry, making debugging harder and masking the
true failure count.
h3. Acceptance Criteria
* {{failures}} must contain each logical failure only once, even after
recursive retries.
* No duplicate stack traces in the aggregated {{ClientConnectionException}}
thrown from {{{}composeException{}}}.
h3. Suggested Fix
Guard against adding the same failure twice during recursive retry, or refactor
the control flow so {{composeException}} is invoked exactly once per logical
failure.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)