Gabriel39 opened a new pull request, #69230:
URL: https://github.com/apache/doris/pull/69230

   ### What problem does this PR solve?
   
   `test_hive_compress_type_large_data` compares exact file and split counts 
against streaming EXPLAIN estimates. A cold catalog can report 
`(approximate)inputSplitNum=1024` even though the fixture contains 16 files. 
Use statement-local `SET_VAR(enable_external_table_batch_mode=false)` for both 
exact plan checks. Keep the synchronous and explicitly forced streaming result 
checks.
   
   `test_paimon_write_thread_lifecycle` treats growth in all BE JVM threads as 
a writer leak. Existing native blocking workers attach to the JVM on their 
first JNI call and remain attached until the worker exits. A stable global 
baseline is therefore not guaranteed, even when every writer closes its 
executor correctly. Check the writer-owned `doris-paimon-` threads through the 
existing process-thread endpoint instead, accounting for Linux's 15-byte 
thread-name limit. Require them to disappear within 30 seconds after each of 
ten write phases, and retain total process-thread counts in diagnostics. This 
detects even one surviving writer thread without increasing a tolerance or 
moving a baseline.
   
   ### Release note
   
   None
   
   ### Check List (For Author)
   
   - Test
       - [x] Regression test
       - [x] Manual test (details below)
   - Behavior changed:
       - [x] No production behavior changes; regression assertions now measure 
the intended resources.
   - Does this need documentation?
       - [x] No.
   
   Local validation used the original DEBUG/ASAN build 
`6c27d4d8b0b4649f6517e15792fba672a54e2935`, an isolated FE/BE, Hive 3/HDFS, 
Spark 4/Paimon, and MinIO:
   
   - **Before:** ran both unmodified suites. Hive failed the exact split 
assertion with the approximate 1024 estimate. With 
`parallel_pipeline_task_num=4`, Paimon failed bounded warm-up with JVM counts 
`451, 497, 525, 587, 606, 676`. Thread dumps mapped the growing attached 
threads to `p_normal_blocki`; writer compaction threads had exited. The failure 
reproduces the invalid global-count assumption, through the warm-up assertion 
rather than the later baseline assertion.
   - **After:** restarted the BE, kept parallelism at 4, and ran both fixed 
suites through `run-regression-test.sh`; **2 suites passed, 0 failed, 0 
skipped**. Paimon executed 120 inserts, verified 120,000 rows, and passed all 
ten writer-thread checks. Its attached blocking-worker count still grew from 54 
to 368, so passing does not depend on a pre-warmed JVM. BE logs confirm the 
compaction executor actually ran.
   - Hive used the original fixture: 16 files, 734,675,596 bytes, eight 
partitions. Both plan checks and all synchronous/forced-streaming result checks 
passed.
   - Verified Paimon's actual `ExecutorThreadFactory` name truncates to 
`doris-paimon-co` on JDK 17/Linux. `git diff --check` passed.
   
   ### Check List (For Reviewer who merge this PR)
   
   - [ ] Confirm the release note
   - [ ] Confirm test cases
   - [ ] Confirm document
   - [ ] Add branch pick label
   


-- 
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