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 d58b46415f5 [fix](regression) Avoid host port hairpin for Fluss MinIO
(#69004)
d58b46415f5 is described below
commit d58b46415f555bdfa1af540870f32e77e04be8bd
Author: zgxme <[email protected]>
AuthorDate: Wed Oct 14 10:20:26 2026 +0800
[fix](regression) Avoid host port hairpin for Fluss MinIO (#69004)
Problem Summary: Fluss containers used the host-published MinIO endpoint
for lake initialization. That same-bridge hairpin path is not available
consistently across Docker networking setups, so the coordinator can
fail before the external regression starts. Use the MinIO service name
on the compose network while Doris continues to use the published host
endpoint supplied by the regression catalog properties.
---
docker/thirdparties/docker-compose/fluss/fluss.env.tpl | 14 +++++++-------
docker/thirdparties/docker-compose/fluss/fluss.yaml.tpl | 7 +++----
docker/thirdparties/run-thirdparties-docker.sh | 3 ++-
3 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/docker/thirdparties/docker-compose/fluss/fluss.env.tpl
b/docker/thirdparties/docker-compose/fluss/fluss.env.tpl
index c3d7515d538..85820859844 100644
--- a/docker/thirdparties/docker-compose/fluss/fluss.env.tpl
+++ b/docker/thirdparties/docker-compose/fluss/fluss.env.tpl
@@ -81,13 +81,13 @@ FLUSS_PAIMON_WAREHOUSE=s3://fluss-lake/wh
# edit. Unused while the warehouse is in the object store.
FLUSS_PAIMON_WAREHOUSE_DIR=${FLUSS_COMPOSE_DIR}/data/paimon
-# How everything reaches the object store. One address for all of them -- the
-# containers and Doris on the host -- for the same reason the fluss servers
-# advertise the host address: the endpoint is recorded in the lake table's
-# properties, and a container-only hostname there would be a location the host
-# cannot resolve. The credentials are the minio root user, which the container
-# below is started with.
-FLUSS_LAKE_S3_ENDPOINT=http://${IP_HOST}:19125
+# How the Fluss containers reach the object store. Keep this traffic on the
+# compose network instead of hairpinning through the host's published port: the
+# latter is not supported consistently by every Docker networking setup. Doris
+# runs on the host and uses the published port through the explicit
+# fluss.lake.paimon.s3.endpoint catalog property in the regression suites; that
+# catalog value overrides the endpoint copied into the lake table properties.
+FLUSS_LAKE_S3_ENDPOINT=http://${CONTAINER_UID}fluss-minio:9000
FLUSS_LAKE_S3_ACCESS_KEY=minioadmin
FLUSS_LAKE_S3_SECRET_KEY=minioadmin
diff --git a/docker/thirdparties/docker-compose/fluss/fluss.yaml.tpl
b/docker/thirdparties/docker-compose/fluss/fluss.yaml.tpl
index a549d5264ae..c878a80d4b0 100644
--- a/docker/thirdparties/docker-compose/fluss/fluss.yaml.tpl
+++ b/docker/thirdparties/docker-compose/fluss/fluss.yaml.tpl
@@ -70,10 +70,9 @@ services:
- doris--fluss--network
# The object store the lake lives in. Part of this environment rather than
- # borrowed from another component's: the fluss servers, the tiering job and
- # Doris all have to name one endpoint, and an environment that only works
when
- # something else was started first is a failure mode nobody reads a compose
- # file to discover.
+ # borrowed from another component's: the fluss servers and tiering job reach
+ # it by its compose-network name, while Doris reaches its published host port
+ # through the endpoint configured by the regression suites.
doris--fluss-minio:
# The release the other object-store environments in this directory use,
and
# the one whose server image still carries mc -- which is what creates the
diff --git a/docker/thirdparties/run-thirdparties-docker.sh
b/docker/thirdparties/run-thirdparties-docker.sh
index e7036c6e4c1..fb2d8bb4f3a 100755
--- a/docker/thirdparties/run-thirdparties-docker.sh
+++ b/docker/thirdparties/run-thirdparties-docker.sh
@@ -1499,7 +1499,8 @@ start_fluss() {
# the host) can read the kv snapshots and remote log segments the servers
# write, and the lake files the tiering service writes.
export FLUSS_COMPOSE_DIR="${fluss_dir}"
- envsubst <"${fluss_dir}/fluss.env.tpl" >"${fluss_dir}/fluss.env"
+ CONTAINER_UID="${CONTAINER_UID}" envsubst \
+ <"${fluss_dir}/fluss.env.tpl" >"${fluss_dir}/fluss.env"
set -a
# shellcheck source=/dev/null
. "${fluss_dir}/fluss.env"
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]