fix(ecstore): send valid ping body in remote locker (#3112)

* fix(ecstore): send valid ping body in remote locker

Build ping requests with a flatbuffer payload so health checks remain compatible with the ping response parser after restart.

* fix(bench): use multi-host warp target during failover

Normalize comma-separated warp host lists in run_object_batch_bench and let four-node failover bench pass BENCH_WARP_HOSTS so rolling restart does not pin load to a single restarting node.

* feat(health): add compat health probes with busy/KMS checks

  - Add /health/live liveness probe endpoint
  - Add busy protection (429) for readiness probes, gated by RUSTFS_HEALTH_COMPAT_BUSY_CHECK_ENABLE
  - Add KMS readiness check for /health/ready, gated by RUSTFS_HEALTH_COMPAT_KMS_READY_CHECK_ENABLE
  - Add lock quorum status caching with TTL to reduce RPC pressure
  - Consolidate health response building into build_health_response_parts
  - Register /health/live in console router and readiness gate
  - Remove MinIO references from newly added health code

* fix(health): decouple kms readiness from lock quorum
This commit is contained in:
houseme
2026-05-29 16:02:50 +08:00
committed by GitHub
parent c257043b63
commit 2b82432f9e
14 changed files with 578 additions and 169 deletions
+22 -6
View File
@@ -108,12 +108,28 @@ print_dry_run_command() {
normalize_warp_host() {
local raw="$1"
raw="${raw#http://}"
raw="${raw#https://}"
raw="${raw%%/*}"
raw="${raw%%\?*}"
raw="${raw%%\#*}"
echo "$raw"
local item normalized
local -a parts
local -a hosts=()
IFS=',' read -r -a parts <<< "$raw"
for item in "${parts[@]}"; do
item="$(echo "$item" | xargs)"
[[ -z "$item" ]] && continue
item="${item#http://}"
item="${item#https://}"
item="${item%%/*}"
item="${item%%\?*}"
item="${item%%\#*}"
[[ -n "$item" ]] && hosts+=("$item")
done
if [[ ${#hosts[@]} -eq 0 ]]; then
return 0
fi
normalized="$(IFS=','; echo "${hosts[*]}")"
echo "$normalized"
}
parse_args() {