Uh oh!
There was an error while loading. Please reload this page.
[fix] Preserve CurrentConnected in frontends() TVF - #61087
Conversation
Cause: - FRONTENDS() goes through metadata scan and may be generated on master FE. - In this path, currentConnectedFE context is not always preserved, so CurrentConnected falls back to master and WHERE CURRENTCONNECTED='Yes' always matches master. Fix: - Reuse TFrontendsMetadataParams.cluster_name as a pass-through slot to carry the FE host that accepted the client connection from TVF planning to metadata generation. - Populate this host in FrontendsTableValuedFunction#getMetaScanRange (prefer ConnectContext.currentConnectedFEIp, fallback to self host). - Read and apply it in MetadataGenerator#frontendsMetadataResult via FrontendsProcNode#getFrontendsInfo(env, infos, currentConnectedFeHost). - Add comments at write/read points to explain why cluster_name is reused for this pass-through. Verification: - FE UT: org.apache.doris.tablefunction.FrontendsTableValuedFunctionTest
hello-stephen
commented
Mar 5, 2026
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
deardeng
commented
Mar 5, 2026
run buildall |
doris-robot
commented
Mar 5, 2026
TPC-H: Total hot run time: 27589 ms |
doris-robot
commented
Mar 5, 2026
TPC-DS: Total hot run time: 153300 ms |
Uh oh!
There was an error while loading. Please reload this page.
Background:\nFRONTENDS() previously reused TFrontendsMetadataParams.cluster_name to pass\nthe FE host that accepted the client connection. This made the semantics\nof cluster_name ambiguous and fragile.\n\nFix:\n- add optional field current_connected_fe_host to TFrontendsMetadataParams\n- write this field in FrontendsTableValuedFunction\n- read this field in MetadataGenerator when building FRONTENDS() rows\n- update FrontendsTableValuedFunctionTest assertions\n\nCompatibility:\ncluster_name remains unchanged for compatibility; CurrentConnected now uses\na dedicated field with explicit meaning.
deardeng
commented
Mar 5, 2026
run buildall |
hello-stephen
commented
Mar 5, 2026
Cloud UT Coverage ReportIncrement line coverage Increment coverage report
|
doris-robot
commented
Mar 5, 2026
TPC-H: Total hot run time: 27744 ms |
doris-robot
commented
Mar 5, 2026
TPC-DS: Total hot run time: 153463 ms |
doris-robot
commented
Mar 5, 2026
BE UT Coverage ReportIncrement line coverage Increment coverage report
|
hello-stephen
commented
Mar 5, 2026
BE Regression && UT Coverage ReportIncrement line coverage Increment coverage report
|
hello-stephen
commented
Mar 5, 2026
FE Regression Coverage ReportIncrement line coverage |
PR approved by at least one committer and no changes requested. |
PR approved by anyone and no changes requested. |
Uh oh!
There was an error while loading. Please reload this page.
Cause: - FRONTENDS() goes through metadata scan and may be generated on master FE. - In this path, currentConnectedFE context is not always preserved, so CurrentConnected falls back to master and WHERE CURRENTCONNECTED='Yes' always matches master. Fix: - Reuse TFrontendsMetadataParams.cluster_name as a pass-through slot to carry the FE host that accepted the client connection from TVF planning to metadata generation. - Populate this host in FrontendsTableValuedFunction#getMetaScanRange (prefer ConnectContext.currentConnectedFEIp, fallback to self host). - Read and apply it in MetadataGenerator#frontendsMetadataResult via FrontendsProcNode#getFrontendsInfo(env, infos, currentConnectedFeHost). - Add comments at write/read points to explain why cluster_name is reused for this pass-through. Verification: - FE UT: org.apache.doris.tablefunction.FrontendsTableValuedFunctionTest
Cause: - FRONTENDS() goes through metadata scan and may be generated on master FE. - In this path, currentConnectedFE context is not always preserved, so CurrentConnected falls back to master and WHERE CURRENTCONNECTED='Yes' always matches master. Fix: - Reuse TFrontendsMetadataParams.cluster_name as a pass-through slot to carry the FE host that accepted the client connection from TVF planning to metadata generation. - Populate this host in FrontendsTableValuedFunction#getMetaScanRange (prefer ConnectContext.currentConnectedFEIp, fallback to self host). - Read and apply it in MetadataGenerator#frontendsMetadataResult via FrontendsProcNode#getFrontendsInfo(env, infos, currentConnectedFeHost). - Add comments at write/read points to explain why cluster_name is reused for this pass-through. Verification: - FE UT: org.apache.doris.tablefunction.FrontendsTableValuedFunctionTest
…he#7571) pick from apache#61087 Cause: - FRONTENDS() goes through metadata scan and may be generated on master FE. - In this path, currentConnectedFE context is not always preserved, so CurrentConnected falls back to master and WHERE CURRENTCONNECTED='Yes' always matches master. Fix: - Reuse TFrontendsMetadataParams.cluster_name as a pass-through slot to carry the FE host that accepted the client connection from TVF planning to metadata generation. - Populate this host in FrontendsTableValuedFunction#getMetaScanRange (prefer ConnectContext.currentConnectedFEIp, fallback to self host). - Read and apply it in MetadataGenerator#frontendsMetadataResult via FrontendsProcNode#getFrontendsInfo(env, infos, currentConnectedFeHost). - Add comments at write/read points to explain why cluster_name is reused for this pass-through. Verification: - FE UT: org.apache.doris.tablefunction.FrontendsTableValuedFunctionTest (cherry picked from commit 85eb562) ## Proposed changes Issue Number: close #xxx <!--Describe your changes.-->
Cause:
Fix:
Verification:
What problem does this PR solve?
Issue Number: close #xxx
Related PR: #xxx
Problem Summary:
Release note
None
Check List (For Author)
Test
Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)