## Why I'm doing:
The decommission of backend sometimes blocked by tablet in recycle bin.
## What I'm doing:
We can force drop the backend if the following conditions met:
1. All the tablets are in recycle bin.
2. All the replication number of tablets is bigger than the retained backend number(which means there is no backend to migrate, so decommission is blocked), and at least one healthy replica on retained backend.
3. There are at least 1 available backend.
Signed-off-by: gengjun-git <gengjun@starrocks.com>
What I'm doing:
Increase the compaction threads in the allin1 docker setup to accelerate the standard load-query cycle.
Signed-off-by: Murphy <mofei@starrocks.com>
## Why I’m doing
- Tests often enable temporary configs, create transient objects, or invoke external side-effects. When a test fails mid-way, ad-hoc cleanup embedded in the test body may be skipped, leaving residue that causes flakiness and cross-test interference.
- This change provides a first-class, always-run teardown mechanism that executes after each case, regardless of pass/fail, improving test reliability and isolation, and simplifying test authoring.
## What I’m doing
- Introduce a CLEANUP block to SQL-tester that defines statements to run in tearDown for each case.
- Semantics:
- CLEANUP runs unconditionally in tearDown after each case (pass/fail/timeout).
- Results in CLEANUP are not validated; failures are logged but do not prevent later cleanup steps.
- Existing built-in cleanup (e.g., dropping parsed DATABASE/RESOURCE) still runs; CLEANUP is additive.
- In record mode, the CLEANUP block is preserved in-place in the generated R file.
- Syntax and example:
```sql
-- name: my_case
...
CLEANUP {
-- SQL must end with ';'
DROP TABLE IF EXISTS t1;
DROP DATABASE IF EXISTS db_${uuid0};
-- shell and function are allowed
shell: echo "cleanup ${uuid0}"
function: restore_env("arg1")
} END CLEANUP
```
**Code changes**
- test/README.md
- Document the CLEANUP grammar, usage, semantics, and example.
- test/lib/__init__.py
- Add CLEANUP/END CLEANUP flags.
- test/lib/choose_cases.py
- Parse CLEANUP blocks, collect commands, validate format, include in case model, support variable/uuid replacement, and record block in-place during -r mode.
- test/test_sql_cases.py
- Execute collected CLEANUP commands in tearDown unconditionally; keep record-mode output aligned; ensure built-in database/resource cleanup still runs.
Signed-off-by: PengFei Li <lpengfei2016@gmail.com>
* get the container health status by
```
docker inspect --format='{{.State.Health.Status}}' NAME|ID
```
Signed-off-by: Kevin Cai <kevin.cai@celerdata.com>
Signed-off-by: Murphy <mofei@starrocks.com>
Signed-off-by: Murphy <96611012+murphyatwork@users.noreply.github.com>
Co-authored-by: Kevin Cai <caixh.kevin@gmail.com>