hello-stephen opened a new pull request, #69570: URL: https://github.com/apache/doris/pull/69570
### What problem does this PR solve? The schema-change compaction9/10 suites can lose their first failure when a later assertion in `finally` also fails. For example, a missing rowset version assertion can be replaced by the final row-count mismatch, leaving no original stack to diagnose. Keep and rethrow the primary throwable, attach a distinct finalization failure as suppressed, and avoid self-suppression when both paths throw the same object. Finalization failures still fail the suite when no earlier exception exists. Also correct expected/actual argument order for the FINISHED and row-count assertions. All existing rowset conditions and the 2,556-row expectation are retained. This change improves failure evidence; it does not fix or explain the observed 28,116-row result. ### Validation - Both complete suite sources compiled and were discovered through an actual regression framework `SuiteScript`/`ScriptContext` with Groovy 4.0.19 and JDK 17. Exact target-source `ClusterOptions` and `DebugPoint` were compiled as required dependencies. - Both complete suite closures ran with mocked I/O and clock waits: success, primary failure only, finalization failure only, both failures, and the same throwable object. All ten scenarios passed. The count fixture returns Java `Long`, including `2556L` on the success path, using the framework's dynamic JUnit assertion dispatch. - Running both original complete suites with simultaneous rowset/count failures reproduced the loss of the primary error; patched suites retain it with the count failure suppressed. - Independent static review verified all 26/27 assertions remain, and normalization of the finalization bodies changes only the two expected/actual argument orders. `git diff --check` passed. Validation limits: the dependency framework JAR is an existing local build whose source SHA is unknown (SHA-256 recorded in the local evidence). Its `SuiteScript`/`ScriptContext` API differs from the target source, so this is a local complete-case compile/discovery and mocked-I/O test, not a full target-framework build. A full framework build was attempted but blocked by missing generated Thrift classes. No Doris database runtime was executed. Runtime validation against a fix-containing case artifact remains required. ### Release note None ### Check List (For Author) - Test: Manual complete-case compile/discovery and fault injection; database regression execution pending. - Behavior changed: Yes, preserve primary failure diagnostics without weakening pass/fail checks. - Does this need documentation: No -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
