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)

Reply via email to