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]

Reply via email to