This is an automated email from the ASF dual-hosted git repository.

Gabriel39 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new f7d50550062 [fix](regression) Stabilize external regression cases 
(#67176)
f7d50550062 is described below

commit f7d5055006264b31e6a4d9d906a64c54050bb1cb
Author: Gabriel <[email protected]>
AuthorDate: Thu Aug 27 14:29:17 2026 +0800

    [fix](regression) Stabilize external regression cases (#67176)
    
    ### What problem does this PR solve?
    
    Issue Number: None
    
    Related PR: None
    
    Problem Summary: The external regression run exposed two independent
    test-environment problems:
    
    1. The backup/restore colocate suites use tiny tables. Automatic
    statistics can make the optimizer choose a broadcast join, masking the
    restored colocate metadata that the assertions intend to verify. Disable
    broadcast planning in those suite sessions so the existing positive and
    negative checks consistently validate colocate restoration.
    2. The external pipeline replaces the default FE configuration but
    omitted the ADBC JNI library path. The ADBC suites consequently fell
    back to the native library bundled in the Maven dependency, which
    requires a newer glibc than the regression hosts provide. Preserve the
    Doris-built JNI library path in the external FE options so all existing
    ADBC end-to-end suites load the compatible library shipped with the FE
    output.
    
    ### Release note
    
    None
    
    ### Check List (For Author)
    
    - Test: Regression Test
    - Built the regression framework and ran its unit tests with
    `./run-regression-test.sh --compile`
    - Compiled the updated backup/restore Groovy suite with the Groovy
    compiler
    - Verified the external FE configuration resolves the ADBC JNI directory
    through the same parsing logic used by `start_fe.sh`
    - The existing `external_table_p0/adbc` suites provide end-to-end
    coverage of JNI loading and ADBC queries
    - Behavior changed: No
    - Does this need documentation: No
---
 regression-test/pipeline/external/conf/fe.conf                      | 3 ++-
 .../suites/backup_restore/test_backup_restore_colocate.groovy       | 6 ++++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/regression-test/pipeline/external/conf/fe.conf 
b/regression-test/pipeline/external/conf/fe.conf
index fc818a862a1..d5c3e734433 100644
--- a/regression-test/pipeline/external/conf/fe.conf
+++ b/regression-test/pipeline/external/conf/fe.conf
@@ -28,7 +28,8 @@ DATE = `date +%Y%m%d-%H%M%S`
 JAVA_OPTS="-Xmx4096m -XX:+HeapDumpOnOutOfMemoryError 
-XX:HeapDumpPath=$DORIS_HOME/log/fe.jmap -XX:+UseMembar -XX:SurvivorRatio=8 
-XX:MaxTenuringThreshold=7 -XX:+PrintGCDateStamps -XX:+PrintGCDetails 
-XX:+PrintClassHistogramAfterFullGC -XX:+UseConcMarkSweepGC -XX:+UseParNewGC 
-XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled 
-XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 
-Xloggc:$DORIS_HOME/log/fe.gc.log.$DATE 
-Dcom.mysql.cj.disableAbandonedConnectionCleanup=true"
 
 # For jdk 17+, this JAVA_OPTS will be used as default JVM options
-JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 
-Djavax.security.auth.useSubjectCredsOnly=false -Xmx4096m -XX:+UseG1GC 
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR 
-Xlog:gc*,classhisto*=trace:$LOG_DIR/fe.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M
 -Darrow.enable_null_check_for_get=false 
--add-opens=java.base/java.lang=ALL-UNNAMED 
--add-opens=java.base/java.lang.invoke=ALL-UNNAMED 
--add-opens=java.base/java.lang.reflect=ALL-UNNAMED 
--add-opens=java.base/java.io=ALL-UNN [...]
+# Use Doris' compatible ADBC JNI build because the Maven-bundled library 
requires a newer glibc.
+JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 
-Djavax.security.auth.useSubjectCredsOnly=false -Xmx4096m -XX:+UseG1GC 
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR 
-Xlog:gc*,classhisto*=trace:$LOG_DIR/fe.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M
 -Darrow.enable_null_check_for_get=false 
-Darrow.adbc.driver.jni.library.path=${DORIS_HOME}/lib 
--add-opens=java.base/java.lang=ALL-UNNAMED 
--add-opens=java.base/java.lang.invoke=ALL-UNNAMED 
--add-opens=java.base/java.lang.re [...]
 
 ##
 ## the lowercase properties are read by main program.
diff --git 
a/regression-test/suites/backup_restore/test_backup_restore_colocate.groovy 
b/regression-test/suites/backup_restore/test_backup_restore_colocate.groovy
index f53146dca8d..b4d84a5519f 100644
--- a/regression-test/suites/backup_restore/test_backup_restore_colocate.groovy
+++ b/regression-test/suites/backup_restore/test_backup_restore_colocate.groovy
@@ -16,6 +16,9 @@
 // under the License.
 
 suite("test_backup_restore_colocate", "backup_restore,external") {
+    // Prevent CBO from masking restored colocate metadata with a broadcast 
plan for these tiny tables.
+    sql "set broadcast_row_count_limit = 0"
+
     String suiteName = "test_backup_restore_colocate"
     String repoName = "${suiteName}_repo_" + 
UUID.randomUUID().toString().replace("-", "")
     String dbName = "${suiteName}_db"
@@ -352,6 +355,9 @@ suite("test_backup_restore_colocate", 
"backup_restore,external") {
 }
 
 suite("test_backup_restore_colocate_with_partition", "backup_restore") {
+    // Prevent CBO from masking restored colocate metadata with a broadcast 
plan for these tiny tables.
+    sql "set broadcast_row_count_limit = 0"
+
     String suiteName = "test_backup_restore_colocate_with_partition"
     String repoName = "${suiteName}_repo_" + 
UUID.randomUUID().toString().replace("-", "")
     String dbName = "${suiteName}_db"


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to