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

hello-stephen 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 845aef6a9ad [chore](ci) Own pipeline configuration and restore 
validated Cloud S3 suites (#70444)
845aef6a9ad is described below

commit 845aef6a9ad7c964117e363b0f99614c1cc349d1
Author: Dongyang Li <[email protected]>
AuthorDate: Wed Nov 11 13:41:04 2026 +0800

    [chore](ci) Own pipeline configuration and restore validated Cloud S3 
suites (#70444)
    
    ### Background
    
    Rootless CI previously appended fixed settings and suite exclusions
    after copying configuration from the cases package. This split
    configuration ownership between the repository and deployment scripts.
    The regression framework remains unmodified.
    
    ### What problem does this PR solve?
    
    Issue Number: None
    Related PR: #70407 (earlier source-owned compatibility exclusions)
    PR Type: Build/CI/Chore
    
    Problem Summary:
    
    Keep fixed CI settings and remaining exclusions in the existing profile
    configuration files so changes can be reviewed here. Restore 50 CloudP0
    suites that passed targeted validation using the existing S3 case
    credentials. Preserve the original load-suite initialization before
    ordinary regression suites. Keep the temporary-token suite excluded
    until its STS prerequisites are configured and validated.
    
    ### Details
    
    - **Affected:** P0, CloudP0, VaultP0, External and NonConcurrent
    configuration ownership. CloudP0 removes exactly 50 exclusions: 43
    entries from the adapter migration and 7 previously source-owned
    entries. Other exclusions, groups and directory filters are unchanged.
    `test_s3_load_with_tmp_token` remains excluded because
    `regressionAliyunStsRegion` and `regressionAliyunStsRoleArn` are not
    configured in rootless CI; successful static-credential tests do not
    establish AssumeRole coverage.
    - **Developer and release impact:** Master only. The existing
    `datatype_p0/nested_types/load.groovy` suite initializes its parent
    database through `SuiteContext`; the framework runs load suites before
    ordinary suites. Full CloudP0 keeps that original initialization, with
    no added deployment SQL. Targeted selectors must include the parent load
    suite rather than bypass it. No framework, case, assertion or
    expected-result edits. Runtime addresses, directories, interpreter
    identity and credentials remain deployment inputs.
    - **License and third-party:** No dependencies or licenses added.
    - **Rollback:** The one-line `ci-config-version` marker distinguishes
    source-owned configuration from older cases packages. Removing it would
    select the retained legacy adapter and append the old exclusions again.
    Unmarked master and release-branch packages keep that complete legacy
    behavior. The marker does not replace commit or artifact verification.
    - **Behavior change:** CloudP0 restores the 50 validated suites while
    retaining the original load-suite initialization. Other profiles retain
    their effective configuration.
---
 regression-test/pipeline/CI_CONFIG.md              | 12 +++++
 regression-test/pipeline/ci-config-version         |  1 +
 .../pipeline/cloud_p0/conf/be_custom.conf          |  3 +-
 .../pipeline/cloud_p0/conf/ms_custom.conf          |  3 +-
 .../cloud_p0/conf/regression-conf-custom.groovy    | 54 ++++++++++++++++------
 regression-test/pipeline/external/conf/fe.conf     |  6 +++
 .../pipeline/external/conf/regression-conf.groovy  | 25 ++++++++++
 .../pipeline/nonConcurrent/conf/fe.conf            |  6 +++
 .../nonConcurrent/conf/regression-conf.groovy      | 10 ++++
 regression-test/pipeline/p0/conf/fe.conf           |  6 +++
 .../pipeline/p0/conf/regression-conf.groovy        | 10 ++++
 .../pipeline/vault_p0/conf/be_custom.conf          |  3 +-
 .../pipeline/vault_p0/conf/ms_custom.conf          |  3 +-
 .../vault_p0/conf/regression-conf-custom.groovy    | 11 +++++
 14 files changed, 134 insertions(+), 19 deletions(-)

diff --git a/regression-test/pipeline/CI_CONFIG.md 
b/regression-test/pipeline/CI_CONFIG.md
new file mode 100644
index 00000000000..598ab5630b8
--- /dev/null
+++ b/regression-test/pipeline/CI_CONFIG.md
@@ -0,0 +1,12 @@
+# CI configuration
+
+Fixed settings and suite exclusions live in each profile's existing 
configuration
+files. `DORIS_CI_PRISTINE_FRAMEWORK=true` enables the reviewed settings for CI
+running the unmodified regression framework. Deployment supplies runtime 
addresses,
+paths and credentials.
+
+`ci-config-version` contains `1` so deployment can distinguish these 
source-owned
+settings from older cases packages. Marked packages use the source 
configuration;
+unmarked packages retain the legacy adapter additions, including their 
exclusions.
+Removing the marker would select that fallback again. Unknown versions are 
rejected.
+The marker does not replace the artifact manifest or PR commit checks.
diff --git a/regression-test/pipeline/ci-config-version 
b/regression-test/pipeline/ci-config-version
new file mode 100644
index 00000000000..d00491fd7e5
--- /dev/null
+++ b/regression-test/pipeline/ci-config-version
@@ -0,0 +1 @@
+1
diff --git a/regression-test/pipeline/cloud_p0/conf/be_custom.conf 
b/regression-test/pipeline/cloud_p0/conf/be_custom.conf
index c4aa0619d9f..a904314fe4c 100644
--- a/regression-test/pipeline/cloud_p0/conf/be_custom.conf
+++ b/regression-test/pipeline/cloud_p0/conf/be_custom.conf
@@ -63,7 +63,8 @@ fail_when_segment_rows_not_in_rowset_meta=true
 
 # enable to use python udf
 enable_python_udf_support=true
-python_env_mode=conda
+# The CI image supplies a Python venv; conda is not installed in this runtime.
+python_env_mode = venv
 python_conda_root_path=/opt/miniforge3
 max_python_process_num=16
 
diff --git a/regression-test/pipeline/cloud_p0/conf/ms_custom.conf 
b/regression-test/pipeline/cloud_p0/conf/ms_custom.conf
index c1a44037f42..954829c7011 100644
--- a/regression-test/pipeline/cloud_p0/conf/ms_custom.conf
+++ b/regression-test/pipeline/cloud_p0/conf/ms_custom.conf
@@ -1,4 +1,5 @@
 # below lines will be appended to the default doris_cloud.conf when deploying 
meta service
 meta_schema_value_version = 1
-enable_logging_conflict_keys = true
+# Existing CI mitigation for observed MetaService memory growth during 
conflict-key logging.
+enable_logging_conflict_keys = false
 cloud_txn_lazy_commit_fuzzy_possibility = 50
diff --git 
a/regression-test/pipeline/cloud_p0/conf/regression-conf-custom.groovy 
b/regression-test/pipeline/cloud_p0/conf/regression-conf-custom.groovy
index bc312fd632b..03db1f3e5c4 100644
--- a/regression-test/pipeline/cloud_p0/conf/regression-conf-custom.groovy
+++ b/regression-test/pipeline/cloud_p0/conf/regression-conf-custom.groovy
@@ -120,8 +120,6 @@ pythonUdfRuntimeVersion = "3.12.11"
 // Historical injected-adapter failures below are not evidence of 
original-framework defects.
 if (System.getenv("DORIS_CI_PRISTINE_FRAMEWORK") == "true") {
     excludeSuites += "," + [
-        // Historical injected OUTFILE rewriter rejected two statement 
terminators; original framework cause not established.
-        "dml_into_outfile",
         // Historical local-rootless BE filesystem adapter failure; exact 
rejected path/operation remains unresolved.
         "test_export_basic",
         // Historical local-rootless BE filesystem adapter failure; exact 
rejected path/operation remains unresolved.
@@ -131,13 +129,7 @@ if (System.getenv("DORIS_CI_PRISTINE_FRAMEWORK") == 
"true") {
         // Historical local-rootless BE filesystem adapter failure; exact 
rejected path/operation remains unresolved.
         "test_export_table_with_label_retry",
         // Historical local-rootless BE filesystem adapter failure; exact 
rejected path/operation remains unresolved.
-        "test_nereids_show_export",
-        // Historical CREATE REPOSITORY used public-bucket ANONYMOUS SQL while 
migration backup routing was disabled.
-        "test_temp_table",
-        // Historical injected TVF rewriter left repeated-TVF SQL using 
original public locations; original framework cause not established.
-        "test_uuid_csv_schema",
-        // Historical injected TVF rewriter left repeated-TVF SQL using 
original public locations; original framework cause not established.
-        "test_uuid_parquet_native"
+        "test_nereids_show_export"
     ].join(",")
 
     // Temporary environment exclusions using the existing suite-name filter.
@@ -146,12 +138,6 @@ if (System.getenv("DORIS_CI_PRISTINE_FRAMEWORK") == 
"true") {
     // and export_p0/outfile/parquet/test_outfile_parquet.groovy. No whole 
directory is excluded.
     // The two independent-provider credential cases already have the p2 group 
in master.
     excludeSuites += "," + [
-        // shared parent database prerequisite
-        "test_nested_types_insert_into_with_s3",
-        // shared parent database prerequisite
-        "test_nestedtypes_csv_insert_into_with_s3",
-        // shared parent database prerequisite
-        "test_nestedtypes_json_insert_into_with_s3",
         // root SSH/SCP or remote filesystem prerequisite
         "test_export_view",
         // mysqldump column-statistics compatibility
@@ -171,3 +157,41 @@ if (System.getenv("DORIS_CI_PRISTINE_FRAMEWORK") == 
"true") {
     // This does not establish a wrong query result.
     excludeSuites += ",scalar_agg_pushdown"
 }
+
+// Move remaining compatibility exclusions from the CI adapter into reviewed 
source.
+// These observations do not establish a universal framework defect.
+if (System.getenv("DORIS_CI_PRISTINE_FRAMEWORK") == "true") {
+    excludeSuites += "," + [
+        // Build 477: original suite assertion/result mismatch; exact cause 
pending, not attributed to OOM. Restore: Resolve recorded failure and pass the 
isolated original suite before removing this exclusion.
+        "test_stream_load_error_url",
+        // Build 477: original suite assertion/result mismatch; exact cause 
pending, not attributed to OOM. Restore: Resolve recorded failure and pass the 
isolated original suite before removing this exclusion.
+        "test_csv_with_none_utf8_data",
+        // Build 477: original suite assertion/result mismatch; exact cause 
pending, not attributed to OOM. Restore: Resolve recorded failure and pass the 
isolated original suite before removing this exclusion.
+        "rewrite_when_dml",
+        // Requires regressionAliyunStsRegion and regressionAliyunStsRoleArn 
plus AssumeRole access.
+        // These inputs are not configured in rootless CI; static S3 
credentials do not cover this suite.
+        "test_s3_load_with_tmp_token",
+        // Build 477: error-URL expectation differs; SQL returns please use 
show load instead. Restore: Resolve recorded failure and pass the isolated 
original suite before removing this exclusion.
+        "test_insert_strict_fail_url",
+        // Build 477: error-URL expectation differs; SQL returns please use 
show load instead. Restore: Resolve recorded failure and pass the isolated 
original suite before removing this exclusion.
+        "test_insert_partition_fail_url",
+        // Build 477: error-URL expectation differs; SQL returns please use 
show load instead. Restore: Resolve recorded failure and pass the isolated 
original suite before removing this exclusion.
+        "test_insert_docs_demo",
+        // Build 434: active near initial MS RSS surge (19:18:47-19:19:02); 
temporal correlation only, not proven cause. Restore: Developer MS 
investigation plus isolated/repeated memory-tracked pass, then re-enable 
individually.
+        "multi_slot",
+        // Build 434: active near initial MS RSS surge (19:18:47-19:19:02); 
temporal correlation only, not proven cause. Restore: Developer MS 
investigation plus isolated/repeated memory-tracked pass, then re-enable 
individually.
+        "variant_mv_rowstore_crash",
+        // Build 434: active near initial MS RSS surge (19:18:47-19:19:02); 
temporal correlation only, not proven cause. Restore: Developer MS 
investigation plus isolated/repeated memory-tracked pass, then re-enable 
individually.
+        "test_variant_search_subcolumn_snii"
+    ].join(",")
+}
+
+// Reviewed defaults for CI using the unmodified framework and rootless 
runtime.
+// Preserve other environments; addresses, local paths, credentials and build 
IDs are injected at deployment.
+if (System.getenv("DORIS_CI_PRISTINE_FRAMEWORK") == "true") {
+    // Use the existing read-only regression fixtures in Hong Kong.
+    s3BucketName = "doris-regression-hk"
+    s3Endpoint = "oss-cn-hongkong.aliyuncs.com"
+    s3Region = "oss-cn-hongkong"
+    s3Provider = "S3"
+}
diff --git a/regression-test/pipeline/external/conf/fe.conf 
b/regression-test/pipeline/external/conf/fe.conf
index 34fa5a440a5..0994db451a3 100644
--- a/regression-test/pipeline/external/conf/fe.conf
+++ b/regression-test/pipeline/external/conf/fe.conf
@@ -105,3 +105,9 @@ hms_events_polling_interval_ms=700
 
 
 KRB5_CONFIG=/keytabs/krb5.conf
+
+# Match the regression client ports used by the single-container CI cluster.
+query_port = 9131
+
+# Match the regression client ports used by the single-container CI cluster.
+http_port = 8131
diff --git a/regression-test/pipeline/external/conf/regression-conf.groovy 
b/regression-test/pipeline/external/conf/regression-conf.groovy
index eff4c724778..3d1c5953080 100644
--- a/regression-test/pipeline/external/conf/regression-conf.groovy
+++ b/regression-test/pipeline/external/conf/regression-conf.groovy
@@ -241,3 +241,28 @@ if (System.getenv("DORIS_CI_PRISTINE_FRAMEWORK") == 
"true") {
         "test_parquet_meta_tvf"
     ].join(",")
 }
+
+// Reviewed defaults for CI using the unmodified framework and rootless 
runtime.
+// Preserve other environments; addresses, local paths, credentials and build 
IDs are injected at deployment.
+if (System.getenv("DORIS_CI_PRISTINE_FRAMEWORK") == "true") {
+    // Use the existing read-only regression fixtures in Hong Kong.
+    s3BucketName = "doris-regression-hk"
+    s3Endpoint = "oss-cn-hongkong.aliyuncs.com"
+    s3Region = "oss-cn-hongkong"
+    s3FixtureProtocol = "https"
+    ciFixtureBaseUrl = 
"https://doris-regression-hk.oss-cn-hongkong.aliyuncs.com";
+    ciFixtureStsEnabled = true
+    ciScopedDynamicFixturesEnabled = true
+    ciFixtureProfile = "external"
+    // Preserve the existing local filesystem contract for the rootless 
external lane.
+    backendFilesystemTransport = "local-rootless"
+    ciTrinoLocalDispatchEnabled = true
+    backendLocalPathAllowlist = "[\"/tmp/test_export_view\"]"
+    // Preserve the existing build-scoped backup repository; its build ID is 
injected separately.
+    ciBackupRepositoryEnabled = true
+    ciBackupRepositoryBucket = "doris-ci-artifacts-1949087886039699-hk"
+    ciBackupRepositoryEndpoint = 
"https://oss-cn-hongkong-internal.aliyuncs.com";
+    ciBackupRepositoryRegion = "oss-cn-hongkong"
+    ciBackupRepositoryProfile = "external"
+    ciBackupRepositoryPrefix = "external"
+}
diff --git a/regression-test/pipeline/nonConcurrent/conf/fe.conf 
b/regression-test/pipeline/nonConcurrent/conf/fe.conf
index d283b2a15cf..2e4e995e23a 100644
--- a/regression-test/pipeline/nonConcurrent/conf/fe.conf
+++ b/regression-test/pipeline/nonConcurrent/conf/fe.conf
@@ -94,3 +94,9 @@ max_spilled_profile_num = 2000
 
 check_table_lock_leaky=true
 enable_table_stream=true
+
+# Match the regression client ports used by the single-container CI cluster.
+query_port = 9131
+
+# Match the regression client ports used by the single-container CI cluster.
+http_port = 8131
diff --git a/regression-test/pipeline/nonConcurrent/conf/regression-conf.groovy 
b/regression-test/pipeline/nonConcurrent/conf/regression-conf.groovy
index 749f8bad040..e1bb96e77c2 100644
--- a/regression-test/pipeline/nonConcurrent/conf/regression-conf.groovy
+++ b/regression-test/pipeline/nonConcurrent/conf/regression-conf.groovy
@@ -180,3 +180,13 @@ if (System.getenv("DORIS_CI_PRISTINE_FRAMEWORK") == 
"true") {
         "test_analyze_long_string"
     ].join(",")
 }
+
+// Reviewed defaults for CI using the unmodified framework and rootless 
runtime.
+// Preserve other environments; addresses, local paths, credentials and build 
IDs are injected at deployment.
+if (System.getenv("DORIS_CI_PRISTINE_FRAMEWORK") == "true") {
+    // Use the existing read-only regression fixtures in Hong Kong.
+    s3BucketName = "doris-regression-hk"
+    s3Endpoint = "oss-cn-hongkong.aliyuncs.com"
+    s3Region = "oss-cn-hongkong"
+    s3Provider = "S3"
+}
diff --git a/regression-test/pipeline/p0/conf/fe.conf 
b/regression-test/pipeline/p0/conf/fe.conf
index 61c6a5a4962..343078f485a 100644
--- a/regression-test/pipeline/p0/conf/fe.conf
+++ b/regression-test/pipeline/p0/conf/fe.conf
@@ -96,3 +96,9 @@ check_table_lock_leaky=true
 max_bucket_num_per_partition=512
 enable_table_stream=true
 max_remote_file_system_cache_num=1000
+
+# Match the regression client ports used by the single-container CI cluster.
+query_port = 9131
+
+# Match the regression client ports used by the single-container CI cluster.
+http_port = 8131
diff --git a/regression-test/pipeline/p0/conf/regression-conf.groovy 
b/regression-test/pipeline/p0/conf/regression-conf.groovy
index df30ebf4885..7065aad8194 100644
--- a/regression-test/pipeline/p0/conf/regression-conf.groovy
+++ b/regression-test/pipeline/p0/conf/regression-conf.groovy
@@ -347,3 +347,13 @@ if (System.getenv("DORIS_CI_PRISTINE_FRAMEWORK") == 
"true") {
         "test_replace_table"
     ].join(",")
 }
+
+// Reviewed defaults for CI using the unmodified framework and rootless 
runtime.
+// Preserve other environments; addresses, local paths, credentials and build 
IDs are injected at deployment.
+if (System.getenv("DORIS_CI_PRISTINE_FRAMEWORK") == "true") {
+    // Use the existing read-only regression fixtures in Hong Kong.
+    s3BucketName = "doris-regression-hk"
+    s3Endpoint = "oss-cn-hongkong.aliyuncs.com"
+    s3Region = "oss-cn-hongkong"
+    s3Provider = "S3"
+}
diff --git a/regression-test/pipeline/vault_p0/conf/be_custom.conf 
b/regression-test/pipeline/vault_p0/conf/be_custom.conf
index ccfdac33c88..c042334ef38 100644
--- a/regression-test/pipeline/vault_p0/conf/be_custom.conf
+++ b/regression-test/pipeline/vault_p0/conf/be_custom.conf
@@ -43,7 +43,8 @@ enable_brpc_connection_check=true
 
 # enable to use python udf
 enable_python_udf_support=true
-python_env_mode=venv
+# The CI image supplies a Python venv; conda is not installed in this runtime.
+python_env_mode = venv
 python_venv_interpreter_paths=/usr/bin/python
 max_python_process_num=16
 
diff --git a/regression-test/pipeline/vault_p0/conf/ms_custom.conf 
b/regression-test/pipeline/vault_p0/conf/ms_custom.conf
index 64ba3116f5f..ad00150db29 100644
--- a/regression-test/pipeline/vault_p0/conf/ms_custom.conf
+++ b/regression-test/pipeline/vault_p0/conf/ms_custom.conf
@@ -1,3 +1,4 @@
 # below lines will be appended to the default doris_cloud.conf when deploying 
meta service
 meta_schema_value_version = 1
-enable_logging_conflict_keys = true
+# Existing CI mitigation for observed MetaService memory growth during 
conflict-key logging.
+enable_logging_conflict_keys = false
diff --git 
a/regression-test/pipeline/vault_p0/conf/regression-conf-custom.groovy 
b/regression-test/pipeline/vault_p0/conf/regression-conf-custom.groovy
index 3308682b0ba..69af614ee8b 100644
--- a/regression-test/pipeline/vault_p0/conf/regression-conf-custom.groovy
+++ b/regression-test/pipeline/vault_p0/conf/regression-conf-custom.groovy
@@ -45,3 +45,14 @@ extMinioRegion = "us-east-1"
 extMinioBucket = "test-bucket"
 
 s3Endpoint = "oss-cn-hongkong-internal.aliyuncs.com"
+
+// Reviewed defaults for CI using the unmodified framework and rootless 
runtime.
+// Preserve other environments; addresses, local paths, credentials and build 
IDs are injected at deployment.
+if (System.getenv("DORIS_CI_PRISTINE_FRAMEWORK") == "true") {
+    // Use the existing read-only regression fixtures in Hong Kong.
+    s3BucketName = "doris-regression-hk"
+    s3Endpoint = "oss-cn-hongkong.aliyuncs.com"
+    s3Region = "oss-cn-hongkong"
+    // Vault fixtures use the OSS provider; the other S3 lanes retain S3.
+    s3Provider = "OSS"
+}


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

Reply via email to