Skip to content

[improvement](s3) Default S3 access to HTTPS#65379

Open
0AyanamiRei wants to merge 7 commits into
apache:masterfrom
0AyanamiRei:improvement/s3-default-https
Open

[improvement](s3) Default S3 access to HTTPS#65379
0AyanamiRei wants to merge 7 commits into
apache:masterfrom
0AyanamiRei:improvement/s3-default-https

Conversation

@0AyanamiRei

@0AyanamiRei 0AyanamiRei commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

What problem does this PR solve?

Issue Number: None

Related PR: None

Problem Summary:
Doris object storage access defaulted to plain HTTP in BE and Cloud S3 client configuration. FE endpoint connectivity validation also added http:// when users provided an S3-compatible endpoint without an explicit scheme. Object storage services may disable HTTP and require HTTPS, so deployments that do not explicitly configure a scheme can fail or use an insecure default.

This PR changes the default S3-compatible object storage access scheme to HTTPS. It preserves explicit HTTP fallback for environments that set s3_client_http_scheme=http or provide an http:// endpoint.

Release note

Default S3-compatible object storage access now uses HTTPS unless users explicitly configure HTTP.

Check List (For Author)

  • Test

    • Regression test
    • Unit Test
    • Manual test (add detailed scripts or steps below)
    • No need to test or manual test. Explain why:
      • This is a refactor/code format and no logic has been changed.
      • Previous test can cover this change.
      • No code files have been changed.
      • Other reason
  • Behavior changed:

    • No.
    • Yes. Default S3-compatible object storage access changes from HTTP to HTTPS. Explicit HTTP configuration remains supported.
  • Does this need documentation?

    • No.
    • Yes.

Check List (For Reviewer who merge this PR)

  • Confirm the release note
  • Confirm test cases
  • Confirm document
  • Add branch pick label

### What problem does this PR solve?

Issue Number: None

Related PR: None

Problem Summary: Doris object storage access defaulted to plain HTTP in BE and Cloud S3 client configuration. FE endpoint connectivity validation also added http:// when users provided an S3-compatible endpoint without an explicit scheme. Object storage services may disable HTTP and require HTTPS, so deployments that do not explicitly configure a scheme can fail or use an insecure default. This change makes Doris default S3-compatible object storage access to HTTPS while preserving explicit HTTP fallback for environments that set s3_client_http_scheme=http or provide an http:// endpoint.

### Release note

Default S3-compatible object storage access now uses HTTPS unless users explicitly configure HTTP.

### Check List (For Author)

- Test: Manual test
    - Ran `git diff --cached --check` successfully before committing.
    - `./run-fe-ut.sh --run org.apache.doris.common.util.S3UtilTest` was attempted but could not run because Homebrew is not installed in this macOS environment.
- Behavior changed: Yes. Default S3-compatible object storage access changes from HTTP to HTTPS. Explicit HTTP configuration remains supported.
- Does this need documentation: No
@hello-stephen

Copy link
Copy Markdown
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

@0AyanamiRei

Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen

Copy link
Copy Markdown
Contributor

Cloud UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 77.39% (1896/2450)
Line Coverage 64.43% (34060/52862)
Region Coverage 64.86% (17532/27032)
Branch Coverage 54.05% (9400/17390)

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-H: Total hot run time: 29438 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit 732e20146ec9a764fe5ffbe530f932b13d5e9a20, data reload: false

------ Round 1 ----------------------------------
============================================
q1	17760	4160	4100	4100
q2	2019	315	203	203
q3	10337	1420	837	837
q4	4681	466	334	334
q5	7500	859	587	587
q6	211	180	143	143
q7	796	863	617	617
q8	9906	1590	1505	1505
q9	6080	4383	4365	4365
q10	6841	1798	1553	1553
q11	505	343	313	313
q12	777	551	434	434
q13	18143	3350	2700	2700
q14	284	262	242	242
q15	q16	786	777	714	714
q17	1165	1036	1016	1016
q18	6789	5702	5411	5411
q19	1236	1220	1127	1127
q20	765	688	545	545
q21	5695	2703	2387	2387
q22	429	359	305	305
Total cold run time: 102705 ms
Total hot run time: 29438 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4535	4472	4482	4472
q2	300	314	211	211
q3	4609	4996	4421	4421
q4	2097	2186	1394	1394
q5	4566	4405	4393	4393
q6	251	193	133	133
q7	2148	1945	1657	1657
q8	2589	2235	2207	2207
q9	8024	7954	7880	7880
q10	4780	4684	4286	4286
q11	575	429	481	429
q12	778	779	550	550
q13	3318	3663	3023	3023
q14	305	309	270	270
q15	q16	730	747	629	629
q17	1391	1370	1422	1370
q18	8412	7366	7151	7151
q19	1105	1067	1083	1067
q20	2223	2207	1945	1945
q21	5342	4735	4525	4525
q22	511	457	429	429
Total cold run time: 58589 ms
Total hot run time: 52442 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 181808 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit 732e20146ec9a764fe5ffbe530f932b13d5e9a20, data reload: false

query5	4330	640	493	493
query6	482	224	206	206
query7	4878	639	335	335
query8	369	197	171	171
query9	8784	4176	4146	4146
query10	488	343	295	295
query11	5891	2341	2141	2141
query12	155	106	106	106
query13	1280	644	456	456
query14	6245	5315	4963	4963
query14_1	4327	4293	4293	4293
query15	229	212	193	193
query16	1035	501	453	453
query17	1156	741	598	598
query18	2466	493	370	370
query19	208	199	158	158
query20	115	112	109	109
query21	234	159	131	131
query22	13686	13566	13364	13364
query23	17273	16566	16229	16229
query23_1	16427	16365	16389	16365
query24	7521	1805	1343	1343
query24_1	1332	1326	1344	1326
query25	598	475	406	406
query26	1343	346	214	214
query27	2590	638	391	391
query28	4443	2028	2091	2028
query29	1111	657	520	520
query30	341	266	234	234
query31	1117	1104	988	988
query32	116	65	63	63
query33	539	338	269	269
query34	1179	1196	662	662
query35	787	790	692	692
query36	1405	1449	1313	1313
query37	170	112	100	100
query38	1918	1739	1674	1674
query39	969	994	940	940
query39_1	921	936	931	931
query40	250	165	143	143
query41	69	67	67	67
query42	96	94	93	93
query43	332	348	297	297
query44	1554	832	797	797
query45	207	194	178	178
query46	1133	1212	754	754
query47	2363	2371	2268	2268
query48	408	441	314	314
query49	582	424	321	321
query50	1107	428	337	337
query51	11014	10763	10820	10763
query52	89	91	77	77
query53	275	291	203	203
query54	278	246	246	246
query55	82	79	72	72
query56	308	304	294	294
query57	1444	1419	1345	1345
query58	285	258	249	249
query59	1602	1696	1445	1445
query60	319	269	265	265
query61	156	152	160	152
query62	702	648	596	596
query63	254	204	211	204
query64	2853	1041	880	880
query65	4864	4794	4833	4794
query66	1819	522	420	420
query67	29702	29632	29468	29468
query68	3062	1544	1013	1013
query69	426	320	285	285
query70	1096	1035	978	978
query71	379	336	296	296
query72	3095	2784	2432	2432
query73	802	777	456	456
query74	5126	4985	4796	4796
query75	2633	2614	2237	2237
query76	2327	1212	809	809
query77	374	383	298	298
query78	12407	12318	11753	11753
query79	1460	1204	768	768
query80	1310	532	480	480
query81	531	336	283	283
query82	621	164	120	120
query83	361	335	296	296
query84	282	160	135	135
query85	969	609	523	523
query86	434	321	279	279
query87	1852	1866	1752	1752
query88	3865	2885	2884	2884
query89	456	407	373	373
query90	1917	203	206	203
query91	204	193	172	172
query92	63	64	56	56
query93	1738	1525	998	998
query94	726	364	345	345
query95	792	617	503	503
query96	1097	812	358	358
query97	2700	2722	2530	2530
query98	230	204	203	203
query99	1172	1161	1034	1034
Total cold run time: 267509 ms
Total hot run time: 181808 ms

@hello-stephen

Copy link
Copy Markdown
Contributor

BE UT Coverage Report

Increment line coverage 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 56.54% (23209/41051)
Line Coverage 40.10% (225213/561688)
Region Coverage 36.07% (177981/493457)
Branch Coverage 37.09% (79046/213105)

@hello-stephen

Copy link
Copy Markdown
Contributor
ClickBench: Total hot run time: 25.14 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 732e20146ec9a764fe5ffbe530f932b13d5e9a20, data reload: false

query1	0.01	0.00	0.00
query2	0.10	0.05	0.05
query3	0.26	0.14	0.13
query4	1.61	0.17	0.14
query5	0.25	0.22	0.22
query6	1.25	1.07	1.09
query7	0.04	0.01	0.01
query8	0.05	0.03	0.03
query9	0.38	0.31	0.31
query10	0.57	0.56	0.56
query11	0.19	0.14	0.14
query12	0.19	0.15	0.14
query13	0.49	0.48	0.47
query14	1.02	0.99	1.02
query15	0.61	0.59	0.61
query16	0.34	0.33	0.33
query17	1.13	1.09	1.14
query18	0.25	0.23	0.23
query19	2.12	1.96	1.99
query20	0.02	0.01	0.01
query21	15.42	0.21	0.14
query22	4.77	0.05	0.06
query23	16.13	0.32	0.12
query24	3.03	0.42	0.32
query25	0.13	0.06	0.04
query26	0.72	0.20	0.14
query27	0.03	0.03	0.03
query28	3.55	0.92	0.55
query29	12.48	4.15	3.30
query30	0.28	0.15	0.16
query31	2.77	0.60	0.31
query32	3.22	0.61	0.49
query33	3.14	3.21	3.17
query34	15.57	4.19	3.51
query35	3.53	3.58	3.56
query36	0.55	0.44	0.43
query37	0.09	0.07	0.07
query38	0.06	0.04	0.04
query39	0.04	0.02	0.02
query40	0.18	0.16	0.14
query41	0.10	0.04	0.04
query42	0.04	0.02	0.02
query43	0.04	0.04	0.03
Total cold run time: 96.75 s
Total hot run time: 25.14 s

Comment thread fe/fe-core/src/main/java/org/apache/doris/common/util/S3Util.java Outdated
@spaces-X

spaces-X commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

/review

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review result: request changes.

Critical checkpoint conclusions:

  • Goal/test: the PR intends scheme-less S3-compatible access to default to HTTPS, but the implementation only updates BE/cloud config defaults plus the S3Util load/TVF validation helper. New S3Util tests cover only that helper path.
  • Scope/focus: the patch is small, but it misses several parallel FE object-storage entry points. The existing GitHub thread about HTTP-only compatibility is already covered and was not duplicated.
  • Parallel paths: resource/vault normalization, external stage validation, DLF Iceberg file IO, and external-catalog S3/Minio connectivity still bypass the new HTTPS-default helper.
  • Config/compatibility: BE/cloud defaults changed to HTTPS, but FE paths can still force or preserve old HTTP behavior inconsistently.
  • Persistence/data flow: S3Resource still persists a forced http:// endpoint into copied properties, which downstream resource, vault, policy, and object-store protobuf paths consume.
  • Concurrency/lifecycle/locking: no new concurrency, lifecycle, or lock-order concerns found in the changed code.
  • Testing/validation: patch-scoped whitespace check passed. FE build/unit tests were not run because this checkout lacks .worktree_initialized, thirdparty/installed, and thirdparty/installed/bin/protoc.
  • User focus: no additional user-provided review focus.

Subagent conclusions: OR-1 was accepted and merged into the inline comment; TSC-1 was a duplicate confirmation with test evidence; OR-2, OR-3, and OR-4 were reported during convergence and merged into the same consolidated finding. Convergence closed in round 3 when both optimizer-rewrite and tests-session-config returned NO_NEW_VALUABLE_FINDINGS for the same ledger/comment set.

Comment thread fe/fe-core/src/main/java/org/apache/doris/common/util/S3Util.java Outdated

@gavinchou gavinchou left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the improvement. I think this still needs changes before merge.

  1. The storage vault path still persists a bare S3 endpoint as HTTP, so the most important cloud vault/ObjectStoreInfoPB path does not actually get the new HTTPS default. CREATE STORAGE VAULT goes through StorageVault.fromCommand -> S3StorageVault -> Resource.fromCommand -> S3Resource.setProperties, and S3Resource.setProperties still rewrites a bare endpoint to http://.... That value is then copied into ObjectStoreInfoPB by S3Properties.getObjStoreInfoPB, persisted by meta-service as-is, and later consumed by BE/recycler through S3Conf::get_s3_conf. As a result, a new storage vault created with a bare s3.endpoint will still use/persist HTTP and will not follow the new default HTTPS behavior.

  2. CREATE STAGE still has an HTTP-only preflight check. CreateStageCommand.tryConnect unconditionally builds http:// + endpoint before the real object-storage access. The real FE filesystem path already defaults a bare S3 endpoint to HTTPS in S3ObjStorage, so the preflight can fail for an HTTPS-only endpoint even though the actual object-storage client would use HTTPS and succeed.

  3. There are still FE S3-compatible client construction paths that do not use the same HTTPS-default normalization. AbstractS3CompatibleConnectivityTester passes URI.create(endpoint) directly, so an explicitly configured bare endpoint is not normalized before the AWS SDK client is built. DLFCatalog.initializeFileIO also converts the OSS endpoint to an S3-compatible endpoint and then defaults a bare endpoint to http://. These paths should share the same endpoint normalization rule: preserve explicit http:// or https://, but default a bare endpoint to HTTPS.

Testing suggestion: please add coverage for the storage vault/ObjectStoreInfoPB path, especially CREATE STORAGE VAULT with a bare s3.endpoint, and assert that it no longer persists http://... unintentionally. The existing S3ResourceTest still asserts that a bare endpoint becomes http://aaa, which is exactly the old behavior this PR should change for this path. It would also be useful to add coverage for CREATE STAGE with a bare endpoint and for the FE catalog/DLF connectivity paths so all object-storage client construction follows the same default HTTPS rule.

@0AyanamiRei

Copy link
Copy Markdown
Contributor Author

Thanks for the improvement. I think this still needs changes before merge.

  1. The storage vault path still persists a bare S3 endpoint as HTTP, so the most important cloud vault/ObjectStoreInfoPB path does not actually get the new HTTPS default. CREATE STORAGE VAULT goes through StorageVault.fromCommand -> S3StorageVault -> Resource.fromCommand -> S3Resource.setProperties, and S3Resource.setProperties still rewrites a bare endpoint to http://.... That value is then copied into ObjectStoreInfoPB by S3Properties.getObjStoreInfoPB, persisted by meta-service as-is, and later consumed by BE/recycler through S3Conf::get_s3_conf. As a result, a new storage vault created with a bare s3.endpoint will still use/persist HTTP and will not follow the new default HTTPS behavior.
  2. CREATE STAGE still has an HTTP-only preflight check. CreateStageCommand.tryConnect unconditionally builds http:// + endpoint before the real object-storage access. The real FE filesystem path already defaults a bare S3 endpoint to HTTPS in S3ObjStorage, so the preflight can fail for an HTTPS-only endpoint even though the actual object-storage client would use HTTPS and succeed.
  3. There are still FE S3-compatible client construction paths that do not use the same HTTPS-default normalization. AbstractS3CompatibleConnectivityTester passes URI.create(endpoint) directly, so an explicitly configured bare endpoint is not normalized before the AWS SDK client is built. DLFCatalog.initializeFileIO also converts the OSS endpoint to an S3-compatible endpoint and then defaults a bare endpoint to http://. These paths should share the same endpoint normalization rule: preserve explicit http:// or https://, but default a bare endpoint to HTTPS.

Testing suggestion: please add coverage for the storage vault/ObjectStoreInfoPB path, especially CREATE STORAGE VAULT with a bare s3.endpoint, and assert that it no longer persists http://... unintentionally. The existing S3ResourceTest still asserts that a bare endpoint becomes http://aaa, which is exactly the old behavior this PR should change for this path. It would also be useful to add coverage for CREATE STAGE with a bare endpoint and for the FE catalog/DLF connectivity paths so all object-storage client construction follows the same default HTTPS rule.

draft first, we will test for this behavior change.

@0AyanamiRei 0AyanamiRei marked this pull request as draft July 8, 2026 12:51
@hello-stephen

Copy link
Copy Markdown
Contributor

FE UT Coverage Report

Increment line coverage 75.00% (3/4) 🎉
Increment coverage report
Complete coverage report

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100% (0/0) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 72.99% (29248/40071)
Line Coverage 56.63% (316258/558471)
Region Coverage 53.08% (263023/495543)
Branch Coverage 54.14% (115511/213340)

@hello-stephen

Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 0.76% (4/525) 🎉
Increment coverage report
Complete coverage report

@0AyanamiRei 0AyanamiRei marked this pull request as ready for review July 10, 2026 03:36
### What problem does this PR solve?

Issue Number: None

Related PR: apache#65379

Problem Summary: Scheme-less S3 endpoints were still normalized inconsistently in FE paths after changing the BE and Cloud defaults to HTTPS. S3 resources and storage vaults persisted bare endpoints as HTTP, ALTER RESOURCE could write bare endpoints, external stage preflight and metadata handling were inconsistent, and catalog connectivity and DLF file IO bypassed the HTTPS default. This change centralizes endpoint normalization so bare endpoints use HTTPS while explicitly configured schemes are preserved across these paths. It also updates resource and stage serialization coverage to verify persisted endpoints.

### Release note

Scheme-less S3-compatible endpoints now default to HTTPS across resources, storage vaults, external stages, catalog connectivity checks, and DLF file IO. HTTP-only endpoints must be configured explicitly with the http:// scheme.

### Check List (For Author)

- Test: Unit Test
    - ./run-fe-ut.sh --run org.apache.doris.common.util.S3UtilTest,org.apache.doris.catalog.S3ResourceTest,org.apache.doris.nereids.trees.plans.commands.CreateStageCommandTest
    - ./build.sh --fe -j48
- Behavior changed: Yes. Scheme-less S3-compatible endpoints now default to HTTPS consistently across FE object-storage paths; explicitly configured schemes remain unchanged.
- Does this need documentation: No
@sollhui

sollhui commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

/review

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review result: request changes.

Critical checkpoint conclusions:

  • Goal/test: the PR goal is to default scheme-less S3-compatible endpoints to HTTPS. The current head covers the earlier missing FE parallel paths, but the S3 resource alter path has a regression for blank endpoint updates. Added tests cover normal endpoint normalization, but not this empty-value modification case.
  • Scope/focus: the change is focused on S3 endpoint normalization and default BE/cloud client scheme values.
  • Parallel paths: I did not resubmit the existing comments about S3Resource/storage vault/stage/DLF/connectivity paths; current head now routes those paths through the shared HTTPS-default helper or through S3Resource-backed storage vault creation.
  • Config/compatibility: explicit http:// is preserved, while scheme-less endpoints now default to HTTPS. HTTP-only deployments still need explicit HTTP configuration as described in the PR release note.
  • Persistence/data flow: one remaining issue is that ALTER RESOURCE can persist the invalid endpoint https:// when a blank endpoint value is supplied with validity checking disabled.
  • Concurrency/lifecycle/locking: no new concurrency, lifecycle, or lock-order concern found in the changed code.
  • Testing/validation: patch-scoped whitespace check passed with git diff --check -- $(cat .code-review.VRLyVZ/pr_changed_files.txt). I did not run FE unit tests locally because this checkout lacks .worktree_initialized, thirdparty/installed, and thirdparty/installed/bin/protoc.
  • User focus: no additional user-provided review focus.

Subagent conclusions: optimizer-rewrite and tests-session-config both completed initial focused passes with no new candidates. The main agent accepted M-001 as the only inline comment. The previous endpoint-propagation concern was classified as duplicate/stale against the existing thread after verifying the current head. Convergence round 1 ended with both live subagents returning NO_NEW_VALUABLE_FINDINGS for the same current ledger/comment set after M-001 was added.

Comment thread fe/fe-core/src/main/java/org/apache/doris/catalog/S3Resource.java
### What problem does this PR solve?

Issue Number: None

Related PR: apache#65379

Problem Summary: Normalizing an empty S3 endpoint during ALTER RESOURCE converted the value to `https://`. Because that result was non-empty, it bypassed the existing effective-value guard and replaced the persisted endpoint. Only normalize effective endpoint values so empty updates continue to preserve the current endpoint for both standard and legacy property keys.

### Release note

None

### Check List (For Author)

- Test: Unit Test not run because `thirdparty/installed/bin/protoc` is unavailable; added S3ResourceTest coverage for empty standard and legacy endpoint updates
- Behavior changed: No; restores the existing behavior of ignoring empty resource property updates
- Does this need documentation: No
@0AyanamiRei

Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-H: Total hot run time: 29079 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit 5c23eca3b5ee32e2b2e1f49e4837e5bfce4b4e82, data reload: false

------ Round 1 ----------------------------------
============================================
q1	17624	3975	4006	3975
q2	2042	308	192	192
q3	10277	1433	824	824
q4	4684	468	333	333
q5	7497	834	567	567
q6	176	166	136	136
q7	767	823	620	620
q8	9657	1555	1598	1555
q9	6281	4341	4383	4341
q10	6792	1772	1512	1512
q11	495	348	309	309
q12	720	539	431	431
q13	18098	3687	2701	2701
q14	263	254	235	235
q15	q16	776	765	710	710
q17	964	957	1045	957
q18	6874	5734	5369	5369
q19	1571	1255	1044	1044
q20	792	641	592	592
q21	5777	2545	2389	2389
q22	415	353	287	287
Total cold run time: 102542 ms
Total hot run time: 29079 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4345	4259	4235	4235
q2	285	315	222	222
q3	4529	4893	4348	4348
q4	2044	2164	1336	1336
q5	4406	4255	4270	4255
q6	224	174	129	129
q7	1735	1672	1854	1672
q8	2484	2125	2081	2081
q9	7830	7749	7729	7729
q10	4700	4638	4217	4217
q11	601	446	380	380
q12	791	750	575	575
q13	3425	3526	2967	2967
q14	310	294	270	270
q15	q16	717	765	631	631
q17	1308	1305	1263	1263
q18	7843	7236	6961	6961
q19	1121	1059	1059	1059
q20	2207	2197	1917	1917
q21	5207	4484	4414	4414
q22	505	475	413	413
Total cold run time: 56617 ms
Total hot run time: 51074 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 180068 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit 5c23eca3b5ee32e2b2e1f49e4837e5bfce4b4e82, data reload: false

query5	4320	643	487	487
query6	447	217	198	198
query7	4840	577	332	332
query8	335	188	169	169
query9	8778	4016	4009	4009
query10	469	342	305	305
query11	5817	2372	2126	2126
query12	158	108	101	101
query13	1262	620	430	430
query14	6246	5320	4941	4941
query14_1	4274	4269	4308	4269
query15	216	202	179	179
query16	1011	461	453	453
query17	1131	711	564	564
query18	2438	458	333	333
query19	201	193	141	141
query20	112	104	106	104
query21	240	151	135	135
query22	13739	13577	13316	13316
query23	17360	16497	16109	16109
query23_1	16207	16225	16149	16149
query24	7666	1806	1305	1305
query24_1	1313	1285	1289	1285
query25	539	443	389	389
query26	1330	359	211	211
query27	2599	566	404	404
query28	4490	2024	2019	2019
query29	1070	620	491	491
query30	342	269	245	245
query31	1123	1106	994	994
query32	110	64	63	63
query33	532	321	262	262
query34	1185	1176	661	661
query35	766	800	685	685
query36	1408	1413	1222	1222
query37	156	113	98	98
query38	1880	1702	1639	1639
query39	930	916	891	891
query39_1	887	893	892	892
query40	250	158	141	141
query41	71	68	69	68
query42	97	97	97	97
query43	324	320	284	284
query44	1483	796	807	796
query45	204	207	198	198
query46	1105	1229	777	777
query47	2465	2386	2342	2342
query48	413	430	312	312
query49	595	444	330	330
query50	1113	415	328	328
query51	10840	10778	10820	10778
query52	87	87	75	75
query53	264	292	203	203
query54	292	270	229	229
query55	76	75	67	67
query56	302	305	296	296
query57	1445	1411	1319	1319
query58	310	299	260	260
query59	1577	1687	1474	1474
query60	318	282	265	265
query61	178	175	175	175
query62	704	658	593	593
query63	247	208	215	208
query64	2906	1016	848	848
query65	4863	4767	4764	4764
query66	1820	516	375	375
query67	29674	29489	28704	28704
query68	3023	1542	974	974
query69	407	294	263	263
query70	1107	962	937	937
query71	350	332	299	299
query72	3026	2712	2391	2391
query73	805	862	439	439
query74	5095	4972	4765	4765
query75	2585	2577	2205	2205
query76	2328	1223	798	798
query77	353	383	288	288
query78	12239	12512	11646	11646
query79	1448	1188	776	776
query80	1288	529	440	440
query81	535	335	291	291
query82	612	153	120	120
query83	355	310	291	291
query84	286	158	131	131
query85	940	588	507	507
query86	418	300	276	276
query87	1836	1817	1730	1730
query88	3764	2819	2814	2814
query89	454	408	355	355
query90	1901	199	195	195
query91	201	188	160	160
query92	65	63	57	57
query93	1785	1501	917	917
query94	717	351	327	327
query95	777	490	566	490
query96	1065	767	346	346
query97	2661	2650	2542	2542
query98	213	203	202	202
query99	1137	1173	1038	1038
Total cold run time: 266108 ms
Total hot run time: 180068 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
ClickBench: Total hot run time: 24.88 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit 5c23eca3b5ee32e2b2e1f49e4837e5bfce4b4e82, data reload: false

query1	0.01	0.00	0.01
query2	0.10	0.04	0.04
query3	0.26	0.13	0.13
query4	1.61	0.13	0.14
query5	0.24	0.21	0.22
query6	1.27	1.06	1.06
query7	0.04	0.01	0.01
query8	0.05	0.04	0.04
query9	0.37	0.32	0.33
query10	0.56	0.54	0.55
query11	0.20	0.14	0.14
query12	0.18	0.14	0.14
query13	0.47	0.47	0.47
query14	1.03	1.02	1.00
query15	0.61	0.59	0.59
query16	0.33	0.32	0.32
query17	1.11	1.10	1.11
query18	0.23	0.22	0.21
query19	2.01	1.92	1.97
query20	0.02	0.01	0.01
query21	15.43	0.20	0.14
query22	5.00	0.06	0.05
query23	16.09	0.29	0.12
query24	2.95	0.43	0.33
query25	0.10	0.05	0.04
query26	0.74	0.20	0.15
query27	0.05	0.04	0.04
query28	3.56	0.91	0.54
query29	12.46	4.05	3.18
query30	0.27	0.16	0.14
query31	2.77	0.58	0.31
query32	3.22	0.58	0.48
query33	3.25	3.15	3.31
query34	15.53	4.18	3.55
query35	3.51	3.48	3.52
query36	0.55	0.43	0.42
query37	0.08	0.06	0.07
query38	0.05	0.04	0.04
query39	0.03	0.04	0.04
query40	0.18	0.16	0.16
query41	0.09	0.03	0.03
query42	0.03	0.04	0.02
query43	0.05	0.03	0.03
Total cold run time: 96.69 s
Total hot run time: 24.88 s

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100% (0/0) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 74.80% (30197/40368)
Line Coverage 58.74% (331200/563878)
Region Coverage 55.53% (277999/500634)
Branch Coverage 56.75% (122776/216359)

@hello-stephen

Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 87.50% (14/16) 🎉
Increment coverage report
Complete coverage report

### What problem does this PR solve?

Issue Number: None

Related PR: apache#65379

Problem Summary: The P0 regression still expected a scheme-less S3 resource endpoint after endpoint normalization began defaulting to HTTPS. The vault P0 MinIO test also passed scheme-less endpoints for an HTTP-only MinIO service, causing the storage vault validity check to attempt TLS and fail with an unrecognized SSL message. Update the expected normalized resource endpoint and explicitly configure HTTP for the HTTP-only MinIO test endpoints.

### Release note

None

### Check List (For Author)

- Test: Regression test not run locally because no Doris cloud/MinIO regression cluster is available; fixes were matched against TeamCity failures from builds 992206 and 992209
- Behavior changed: No; adapts tests to the intended HTTPS-default behavior while preserving explicit HTTP coverage
- Does this need documentation: No
@0AyanamiRei

Copy link
Copy Markdown
Contributor Author

run buildall

### What problem does this PR solve?

Issue Number: None

Related PR: apache#65379

Problem Summary: The cold heat separation ALTER RESOURCE regression has two result checks for scheme-less S3 endpoints. The first check was updated for the new HTTPS default, but the check after binding the resource to a storage policy still expected HTTP. Doris correctly persists the scheme-less endpoint as HTTPS, so update the missed expectation to match the intended normalization behavior.

### Release note

None

### Check List (For Author)

- Test: No need to test; this is a one-line regression expectation update matched directly against the pipeline result, and git diff --check passed
- Behavior changed: No; aligns the test with the intended HTTPS-default behavior
- Does this need documentation: No
@0AyanamiRei

Copy link
Copy Markdown
Contributor Author

run buildall

@hello-stephen

Copy link
Copy Markdown
Contributor

FE UT Coverage Report

Increment line coverage 81.25% (13/16) 🎉
Increment coverage report
Complete coverage report

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-H: Total hot run time: 29223 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpch-tools
Tpch sf100 test result on commit fcf0b391fc9f4175b0085505bf475791fce2246e, data reload: false

------ Round 1 ----------------------------------
============================================
q1	17685	4029	4025	4025
q2	2009	315	205	205
q3	10304	1359	824	824
q4	4691	471	344	344
q5	7532	851	553	553
q6	184	168	135	135
q7	774	825	621	621
q8	9873	1602	1486	1486
q9	6093	4387	4305	4305
q10	6815	1787	1553	1553
q11	510	342	314	314
q12	748	564	444	444
q13	18101	3539	2684	2684
q14	274	261	239	239
q15	q16	794	797	707	707
q17	1193	1024	944	944
q18	6909	5723	5569	5569
q19	1513	1267	1062	1062
q20	772	656	571	571
q21	5851	2578	2341	2341
q22	422	364	297	297
Total cold run time: 103047 ms
Total hot run time: 29223 ms

----- Round 2, with runtime_filter_mode=off -----
============================================
q1	4375	4282	4297	4282
q2	296	340	214	214
q3	4577	4983	4471	4471
q4	2028	2191	1379	1379
q5	4425	4290	4350	4290
q6	231	176	128	128
q7	1744	2131	1763	1763
q8	2460	2217	2093	2093
q9	7931	7834	7800	7800
q10	4816	4722	4272	4272
q11	563	466	374	374
q12	739	761	546	546
q13	3451	3612	2943	2943
q14	319	299	280	280
q15	q16	720	747	665	665
q17	1342	1338	1294	1294
q18	8021	7317	6837	6837
q19	1061	1044	1053	1044
q20	2220	2204	1937	1937
q21	5207	4582	4378	4378
q22	529	451	404	404
Total cold run time: 57055 ms
Total hot run time: 51394 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
TPC-DS: Total hot run time: 180452 ms
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/tpcds-tools
TPC-DS sf100 test result on commit fcf0b391fc9f4175b0085505bf475791fce2246e, data reload: false

query5	4334	624	486	486
query6	452	224	192	192
query7	4852	575	324	324
query8	341	178	168	168
query9	8758	3991	4014	3991
query10	467	351	297	297
query11	5876	2367	2119	2119
query12	157	106	107	106
query13	1315	600	447	447
query14	6313	5288	4970	4970
query14_1	4306	4291	4247	4247
query15	221	203	184	184
query16	1038	467	447	447
query17	1122	723	588	588
query18	2630	459	331	331
query19	206	187	147	147
query20	110	105	109	105
query21	231	156	129	129
query22	13713	13635	13428	13428
query23	17209	16497	16211	16211
query23_1	16228	16313	16227	16227
query24	7525	1751	1290	1290
query24_1	1293	1322	1303	1303
query25	558	429	362	362
query26	1347	330	206	206
query27	2636	561	357	357
query28	4408	2032	1986	1986
query29	1081	635	471	471
query30	332	262	227	227
query31	1114	1090	971	971
query32	115	59	61	59
query33	518	309	250	250
query34	1165	1153	651	651
query35	760	781	682	682
query36	1392	1417	1216	1216
query37	155	108	92	92
query38	1871	1726	1682	1682
query39	1000	973	984	973
query39_1	935	938	935	935
query40	251	162	146	146
query41	70	64	64	64
query42	97	93	89	89
query43	327	333	287	287
query44	1500	803	788	788
query45	213	209	186	186
query46	1138	1212	771	771
query47	2400	2338	2229	2229
query48	428	425	310	310
query49	591	430	325	325
query50	1016	420	324	324
query51	10514	10608	10516	10516
query52	88	88	77	77
query53	277	280	210	210
query54	315	256	241	241
query55	77	75	67	67
query56	312	293	300	293
query57	1431	1401	1312	1312
query58	290	267	282	267
query59	1563	1623	1415	1415
query60	333	284	256	256
query61	179	173	166	166
query62	714	664	595	595
query63	250	220	210	210
query64	2988	1136	886	886
query65	4886	4816	4782	4782
query66	1792	513	379	379
query67	29568	29433	29303	29303
query68	3102	1479	1045	1045
query69	417	302	256	256
query70	1086	946	922	922
query71	338	322	286	286
query72	3009	2667	2358	2358
query73	794	790	437	437
query74	5102	4970	4762	4762
query75	2597	2579	2252	2252
query76	2359	1179	784	784
query77	353	389	291	291
query78	12381	12398	11852	11852
query79	2462	1264	762	762
query80	1726	544	467	467
query81	536	318	269	269
query82	580	156	119	119
query83	355	315	288	288
query84	281	154	135	135
query85	962	592	513	513
query86	431	306	272	272
query87	1837	1826	1771	1771
query88	3672	2786	2749	2749
query89	446	405	366	366
query90	1901	202	188	188
query91	201	187	160	160
query92	67	63	56	56
query93	1808	1529	956	956
query94	709	358	321	321
query95	785	487	457	457
query96	1062	761	362	362
query97	2701	2721	2576	2576
query98	211	203	202	202
query99	1183	1176	1031	1031
Total cold run time: 267611 ms
Total hot run time: 180452 ms

@hello-stephen

Copy link
Copy Markdown
Contributor
ClickBench: Total hot run time: 24.99 s
machine: 'aliyun_ecs.c7a.8xlarge_32C64G'
scripts: https://github.com/apache/doris/tree/master/tools/clickbench-tools
ClickBench test result on commit fcf0b391fc9f4175b0085505bf475791fce2246e, data reload: false

query1	0.01	0.01	0.01
query2	0.10	0.05	0.05
query3	0.25	0.14	0.13
query4	1.61	0.15	0.14
query5	0.27	0.23	0.22
query6	1.23	1.09	1.06
query7	0.04	0.01	0.01
query8	0.05	0.03	0.03
query9	0.39	0.33	0.32
query10	0.56	0.54	0.53
query11	0.19	0.14	0.14
query12	0.18	0.15	0.14
query13	0.48	0.48	0.47
query14	1.01	0.99	1.00
query15	0.61	0.62	0.61
query16	0.31	0.32	0.33
query17	1.08	1.06	1.11
query18	0.24	0.21	0.21
query19	2.05	1.94	1.95
query20	0.02	0.01	0.01
query21	15.42	0.20	0.15
query22	4.85	0.05	0.05
query23	16.16	0.30	0.13
query24	3.01	0.44	0.33
query25	0.12	0.04	0.04
query26	0.77	0.21	0.16
query27	0.05	0.03	0.04
query28	3.47	0.94	0.52
query29	12.46	4.00	3.21
query30	0.28	0.16	0.16
query31	2.77	0.57	0.32
query32	3.22	0.59	0.50
query33	3.26	3.22	3.20
query34	15.61	4.25	3.52
query35	3.53	3.51	3.55
query36	0.56	0.43	0.42
query37	0.09	0.06	0.06
query38	0.05	0.04	0.03
query39	0.03	0.04	0.03
query40	0.19	0.18	0.15
query41	0.09	0.03	0.02
query42	0.04	0.03	0.03
query43	0.04	0.04	0.03
Total cold run time: 96.75 s
Total hot run time: 24.99 s

@hello-stephen

Copy link
Copy Markdown
Contributor

BE Regression && UT Coverage Report

Increment line coverage 100% (0/0) 🎉

Increment coverage report
Complete coverage report

Category Coverage
Function Coverage 74.76% (30179/40368)
Line Coverage 58.71% (331037/563878)
Region Coverage 55.55% (278127/500634)
Branch Coverage 56.75% (122787/216359)

@hello-stephen

Copy link
Copy Markdown
Contributor

FE Regression Coverage Report

Increment line coverage 87.50% (14/16) 🎉
Increment coverage report
Complete coverage report

### What problem does this PR solve?

Issue Number: None

Related PR: apache#65379

Problem Summary: Changing the in-code S3 scheme defaults from HTTP to HTTPS also changes behavior for upgraded clusters whose existing FE and BE configuration files do not contain the new setting. Keep the FE, BE, and Cloud in-code defaults on HTTP for compatibility, add the FE counterpart of s3_client_http_scheme, and set both shipped FE and BE configuration templates to HTTPS. New deployments therefore use HTTPS for scheme-less S3 endpoints without requiring user action, while upgrades preserve their existing behavior and endpoints with an explicit scheme remain unchanged.

### Release note

New deployments default scheme-less S3 endpoints to HTTPS while upgraded clusters retain their existing S3 scheme behavior unless configured otherwise.

### Check List (For Author)

- Test: Unit Test
    - ./run-fe-ut.sh --run org.apache.doris.common.util.S3UtilTest,org.apache.doris.catalog.S3ResourceTest,org.apache.doris.nereids.trees.plans.commands.CreateStageCommandTest
    - ./run-fe-ut.sh --run org.apache.doris.common.util.S3UtilTest
    - build-support/check-format.sh
- Behavior changed: Yes; only newly generated FE and BE configurations default scheme-less S3 endpoints to HTTPS
- Does this need documentation: No
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants