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]

Reply via email to