morningman opened a new pull request, #70331: URL: https://github.com/apache/doris/pull/70331
### Background `docker/thirdparties/run-thirdparties-docker.sh -c polaris` starts the Polaris stack that the External pipeline uses for `external_table_p0/polaris`: MinIO, a one-shot `minio-client` that creates the bucket, the Polaris server, and the one-shot `polaris-init`, which creates the `doris_test` catalog and its roles once Polaris is healthy. `start_polaris` started all four with `docker compose up -d --wait`, which returns once the services it started are running or healthy, and the script runs under `set -eo pipefail`. ### What problem does this PR solve? Issue Number: None Related PR: #66268 (the branch-4.1 fix by @hello-stephen, ported here) PR Type: Test Problem Summary: `polaris-init` exits as soon as it has created the catalog, and `up -d --wait` reports that exited container as a failed start even when it exits with 0, so `start_polaris` fails although Polaris is healthy and the catalog exists. As in #66268, the script now waits only for `polaris` and its dependencies with `up -d --wait`, then runs `polaris-init` with `docker compose run --rm --no-deps`, whose exit code `set -eo pipefail` still checks. ### Details - **Failure:** On branch-4.1, the scheduled External build 205163 failed before any test ran: Polaris was healthy and `polaris-init` exited with 0, but `up -d --wait` returned 1 (#66268). On master, with Docker Compose v5.3.1, `run-thirdparties-docker.sh -c polaris` failed in 3 of 3 runs with `container doris-t59-polaris-init exited (0)`, then `docker component 'polaris' failed with exit code 1`. Master's External history could not be checked: TeamCity was unreachable on November 6. - **Cause:** Compose accepted the exit of `minio-client`, the other one-shot service, which `polaris` depends on with `condition: service_completed_successfully`. Nothing depends on `polaris-init`, so its exit failed the wait. - **Stability evidence:** With this change the same command passed in 3 of 3 runs; `polaris-init` created `doris_test`, which the Polaris management API then listed with base location `s3://warehouse/wh/`. With `init-catalog.sh` exiting 3, the start failed with `docker component 'polaris' failed with exit code 3`, so a failing initializer still fails the start. branch-4.1 and branch-4.2 have had these lines since #66268 (August 4). ### Testing All runs used `CONTAINER_UID=doris-t59- bash run-thirdparties-docker.sh -c polaris` and then `--stop -c polaris`, in `docker/thirdparties` exported from master `59c49656240` and from this branch, on macOS with Docker Compose v5.3.1. | Script | Result | |---|---| | master, 3 runs | each start fails: `container doris-t59-polaris-init exited (0)`, then `docker component 'polaris' failed with exit code 1` | | this PR, 3 runs | each start passes with `all requested dockers started successfully`; `polaris-init` logs `Catalog created.` and `Done.`; `--stop` leaves no container or network | | this PR, `init-catalog.sh` exiting 3 | the start fails as it should: `docker component 'polaris' failed with exit code 3` | `bash -n` passes on the script. The `external_table_p0/polaris` suites did not run locally; the External pipeline runs them on this stack. ### Notes for Reviewers - `up -d --wait --remove-orphans polaris` still starts MinIO and `minio-client` as dependencies of `polaris`; `--no-deps` keeps `run` from starting them again. ### Release note None ### Check List (For Author) - Behavior changed: No - Does this need documentation: No - Pre-submission status: Ready ### AI Disclosure - Tool: Claude Code (Claude Opus 5.5) - Generated: the port (taken from branch-4.1's #66268), the local verification runs, and this description - Human review: not stated - Prompts: The author asked to continue moving branch-4.2's changes back to master with this task, branch-4.1's fix of the Polaris startup, and approved starting the Docker stack locally to compare master's script with this one. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
