liaoxin01 opened a new pull request, #64376:
URL: https://github.com/apache/doris/pull/64376
## Proposed changes
Issue: DORIS-26267
### Problem
In the S3 P0 cloud release regression,
`query_p0.system.test_partitions_schema` was reported as failing, but the stack
trace actually came from `insert_p0/mow_insert_with_partition_drop.groovy`:
```
mow_insert_with_partition_drop$_run_closure1$_closure2.doCall(mow_insert_with_partition_drop.groovy:53)
mow_insert_with_partition_drop$_run_closure1$_closure3.doCall(mow_insert_with_partition_drop.groovy:60)
groovy.lang.Closure.run / java.lang.Thread.run
```
`mow_insert_with_partition_drop` runs `do_insert_into()` inside a raw
`Thread.startDaemon { ... }` and only does `t1.join()` on the main thread. The
insert loop asserts (`assertTrue`) that the exception raised while a partition
is concurrently dropped matches an expected message. When that assertion fails:
1. The `AssertionError` is thrown on the **daemon thread**.
2. `t1.join()` returns normally — `Thread.join()` does **not** re-throw a
child thread's exception, so this suite is recorded as **passed**.
3. The uncaught failure leaks out of the daemon thread and gets
mis-attributed to whichever suite is running at that moment (here,
`test_partitions_schema`), which is then wrongly recorded as **failed**.
### Fix
- Run the insert loop through the regression framework's `thread { ... }`
helper and wait via `future.get()`, so any exception is propagated back to and
**correctly attributed to this suite** instead of leaking onto a neighbor.
- Attach the actual exception message to the `assertTrue`, so that if the
insert raises an unexpected error the real message is visible and debuggable.
The accepted-message whitelist is intentionally left unchanged: this keeps
the test's original guard (commit must fail with the expected message when a
partition is dropped) and avoids masking a genuine cloud-mode regression. If,
with correct attribution, the real message turns out to be a legitimate
concurrent-DDL error, a follow-up can extend the whitelist.
### Behavior change
Pure test-side change. No production code is modified.
--
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]