362f6026ac
chore(build): pin Rust toolchain configs to 1.97.1 ( #5350 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-28 03:53:32 +00:00
d385cea7c6
test(lifecycle): add manual transition rollout harnesses ( #5346 )
...
* test(lifecycle): add manual transition rollout harnesses
Add a dedicated #1508 ignored E2E harness for non-empty manual transition rollout readback and a reusable Docker mixed-version harness entrypoint.
Co-Authored-By: heihutu <[email protected] >
* test(lifecycle): satisfy rollout harness clippy
Use unwrap_or_default for the optional transition_failed report field while preserving the zero-default status readback behavior.
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-07-28 00:04:47 +00:00
6d3ce90c0f
fix(lifecycle): harden manual transition rollout checks ( #5344 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-27 17:29:06 +00:00
0e42a3d1d9
fix(audit): load env-only targets at startup ( #5342 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-27 16:41:38 +00:00
300beff970
fix: classify manual transition tier failures ( #5335 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-27 12:49:08 +00:00
houseme and GitHub
0a2370c024
docs: clarify outbound allowlist scope ( #5336 )
2026-07-27 19:57:22 +08:00
f6c227628f
test(scripts): capture manual transition failure samples ( #5331 )
...
Add a reusable evidence collector for manual transition tier-failure attribution samples and wire the runbook tests to cover its dry-run and argument guards.
Co-authored-by: heihutu <[email protected] >
2026-07-27 18:49:48 +08:00
0cbfa1ac90
test(internode): pin JSON fallback compatibility ( #5330 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-27 09:49:24 +00:00
ab5aa54035
fix(ecstore): replay manual transition task journal ( #5329 )
...
Recover accepted manual-transition tasks from the durable task journal when worker-result markers are missing after a restart.
Co-authored-by: heihutu <[email protected] >
2026-07-27 17:36:40 +08:00
464bf45e15
chore(scripts): add manual transition follow-up monitor ( #5328 )
...
* test(scripts): cover manual transition runbooks
Add a script-test entry for the manual transition rollout and soak runbook generators. The test covers ratio fail-fast behavior, generated status/metrics/journal checks, and runnable dry-run artifacts.
Verification:
- ./scripts/test_manual_transition_runbooks.sh
- make script-tests
Co-Authored-By: heihutu <[email protected] >
* test(scripts): assert nightly stress snapshot hooks
Co-Authored-By: heihutu <[email protected] >
* feat(scripts): add transition CI follow-up monitor
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-07-27 16:36:41 +08:00
bc2d8e0c60
test(scripts): cover manual transition runbooks ( #5327 )
...
Add a script-test entry for the manual transition rollout and soak runbook generators. The test covers ratio fail-fast behavior, generated status/metrics/journal checks, and runnable dry-run artifacts.
Verification:
- ./scripts/test_manual_transition_runbooks.sh
- make script-tests
Co-authored-by: heihutu <[email protected] >
2026-07-27 07:56:58 +00:00
e076e8cc6e
feat(scripts): add runbook entrypoints for #1508 #1510 ( #5326 )
...
* feat(ecstore): attribute manual transition worker failures
Add manual transition worker failure reason tracking and persistence recovery compatibility for checksum validation.
Co-Authored-By: heihutu <[email protected] >
* chore(ilm): add manual transition diagnostics scripts
Co-Authored-By: heihutu <[email protected] >
* style(ecstore): format manual transition attribution
Co-Authored-By: heihutu <[email protected] >
* fix(ecstore): avoid copying failure reasons via clone
Co-Authored-By: heihutu <[email protected] >
* fix(manual-transition): improve matrix verification scripts
- Add strict mixed rollout phase ratio validation.
- Add strict read/write ratio validation for soak mix.
- Inline generated admin-check command blocks into mixed-rollout run script.
Co-Authored-By: heihutu <[email protected] >
* feat(scripts): add runbook entrypoints for #1508 #1510
---------
Co-authored-by: heihutu <[email protected] >
2026-07-27 06:47:28 +00:00
9d84056d7b
feat(ecstore): attribute manual transition worker failures ( #5324 )
...
* feat(ecstore): attribute manual transition worker failures
Add manual transition worker failure reason tracking and persistence recovery compatibility for checksum validation.
Co-Authored-By: heihutu <[email protected] >
* chore(ilm): add manual transition diagnostics scripts
Co-Authored-By: heihutu <[email protected] >
* style(ecstore): format manual transition attribution
Co-Authored-By: heihutu <[email protected] >
* fix(ecstore): avoid copying failure reasons via clone
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-07-27 06:06:12 +00:00
f566b382a0
fix(bench): formalize paired ABBA corrected artifacts ( #5322 )
...
Add a reusable offline rebuild path for pinned paired ABBA benchmark evidence so corrected summaries can be regenerated from raw warp logs after parser fixes.
Record ACK-contract comparability explicitly in the rebuilt product comparison output, preventing relaxed RustFS ACK results from being treated as direct strict MinIO comparisons.
Co-authored-by: heihutu <[email protected] >
2026-07-27 04:06:51 +00:00
5af997ce5f
test(ilm): cover manual transition e2e stress ( #5320 )
...
* test(e2e): cover distributed manual transition admission
Co-Authored-By: heihutu <[email protected] >
* test: cover manual transition restart recovery
Co-Authored-By: heihutu <[email protected] >
* test(ilm): cover queue pressure status readback
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-07-26 18:46:15 +00:00
4bd8cc1369
fix(bench): parse final warp report metrics ( #5308 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 17:49:00 +00:00
3500f2e5ee
test(e2e): cover distributed manual transition admission ( #5319 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 17:42:29 +00:00
e0e2eb30a9
test(ilm): cover pending worker budget status ( #5317 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 17:38:28 +00:00
467fb0a15c
test(ilm): cover restart cancel readback ( #5316 )
...
* test(ilm): cover restart cancel readback
Co-Authored-By: heihutu <[email protected] >
* style(ilm): format restart cancel e2e
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-07-26 17:36:58 +00:00
0902538ceb
test(ilm): cover manual transition restart recovery ( #5318 )
...
test: cover manual transition restart recovery
Co-authored-by: heihutu <[email protected] >
2026-07-26 17:33:59 +00:00
fec09968b9
fix(ilm): preserve manual transition duration budget ( #5315 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 17:32:33 +00:00
4b09239ceb
test(ilm): cover parallel bucket admission ( #5314 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 17:30:48 +00:00
cc3c39da5c
test(ilm): cover queue pressure job readback ( #5313 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 17:16:53 +00:00
07f6d5cda6
test(admin): cover manual transition capabilities e2e ( #5311 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 17:14:14 +00:00
e79337bb5c
test(ilm): cover queue-full terminal job records ( #5310 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 17:11:47 +00:00
683ff52a7b
feat(internode): track msgpack decode traffic ( #5309 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 17:03:58 +00:00
887868e7cd
test(admin): expose manual transition job capabilities ( #5306 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-27 00:17:40 +08:00
0ea7f17fd7
test(ilm): cover transition budget partial records ( #5305 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-27 00:15:58 +08:00
5532510e42
test(ilm): cover terminal job status readback ( #5304 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 14:56:31 +00:00
fc6dfa891a
test(ilm): cover heartbeat backpressure status ( #5303 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 14:41:18 +00:00
994678cfcf
test(ilm): cover unknown checkpoint counters ( #5299 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 14:33:21 +00:00
cee5009c57
test(ilm): cover manual job status cancel matrix ( #5302 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 14:07:02 +00:00
bb130e2655
test(ilm): cover async partial continuation resume ( #5301 )
...
* test(ilm): cover async partial continuation resume
Co-Authored-By: heihutu <[email protected] >
* style(ilm): apply rustfmt to continuation e2e
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-07-26 21:59:47 +08:00
0711a6f4fe
test(ilm): cover manual transition journal replay matrix ( #5300 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 13:41:32 +00:00
0a25d25e68
test(ilm): cover cancelled continuation resume ( #5294 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 13:40:36 +00:00
009dd93788
test(ilm): cover restart unknown readback ( #5298 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 13:15:25 +00:00
7cacd1f558
feat(ilm): persist manual transition task journals ( #5296 )
...
* feat(ilm): persist manual transition task journal
Co-Authored-By: heihutu <[email protected] >
* fix(ilm): reconcile manual task journals on recovery
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-07-26 12:38:41 +00:00
c3242f83ba
test(tier): cover reporter committed prepare replay ( #5297 )
...
Add a deterministic four-hot AddTier regression for the reporter path where one peer has already durably committed prepare replay and the remaining peers still need commit fanout before local publish.
Co-authored-by: heihutu <[email protected] >
2026-07-26 12:37:14 +00:00
e0bd18bd50
test(ilm): cover manual transition endpoint contract ( #5295 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 12:36:53 +00:00
7f0c42e2bb
test(perf): reject zero-byte paired warp sizes ( #5289 )
...
* test(perf): tolerate empty paired runner node args
Co-Authored-By: heihutu <[email protected] >
* test(perf): reject zero-byte paired warp sizes
Keep the #1432 pinned paired ABBA default matrix on positive object sizes because warp refuses zero-byte object generation. Add a dry-run guard so zero-byte compatibility stays a separate functional probe instead of failing mid-benchmark.
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-07-26 20:31:00 +08:00
09a991e735
test(perf): cover GET fallback metric probes ( #5291 )
...
* test(perf): cover GET fallback metric probes
Co-Authored-By: heihutu <[email protected] >
* test(perf): prefer format fallback labels
Co-Authored-By: heihutu <[email protected] >
* test(ilm): remove duplicate manual transition import
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-07-26 11:44:53 +00:00
14c249c266
test(ilm): cover durable checkpoint persistence ( #5288 )
...
* test(ilm): cover durable checkpoint persistence
Co-Authored-By: heihutu <[email protected] >
* style: format checkpoint persistence imports
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-07-26 11:32:23 +00:00
5acc52b7f9
test(ilm): cover admission scope parallelism ( #5293 )
...
* test(ilm): cover cross-bucket admission scope
Co-Authored-By: heihutu <[email protected] >
* fix(ilm): remove duplicate transition progress import
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-07-26 11:30:08 +00:00
26663e0d5d
test(ilm): cover durable progress checkpoint renewal ( #5287 )
...
Add regression coverage for durable manual transition progress checkpoints so page progress persists the report, queue snapshot, and renewed scope admission lease together.
Co-authored-by: heihutu <[email protected] >
2026-07-26 10:34:08 +00:00
caeaa4bf34
test(ilm): cover durable transition progress recovery ( #5286 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 10:06:24 +00:00
05f52beea3
test(ilm): cover cancelled worker counter persistence ( #5285 )
...
* test(ilm): cover combined manual transition failures
Co-Authored-By: heihutu <[email protected] >
* test(ecstore): route transition matrix imports
Co-Authored-By: heihutu <[email protected] >
* test(ilm): satisfy transition matrix lint
Co-Authored-By: heihutu <[email protected] >
* test(ilm): cover cancelled worker counter persistence
Add a focused manual transition job matrix regression for cancel-requested terminal records that already contain mixed worker completion and failure counters. The test verifies cancelled state reduction preserves worker counters and survives encode/decode.
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-07-26 10:01:03 +00:00
25cf7922f5
test(perf): fix GET stage metrics capture ( #5284 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 17:14:24 +08:00
e6706bb94a
test(ilm): cover combined manual transition failures ( #5279 )
...
* test(ilm): cover combined manual transition failures
Co-Authored-By: heihutu <[email protected] >
* test(ecstore): route transition matrix imports
Co-Authored-By: heihutu <[email protected] >
* test(ilm): satisfy transition matrix lint
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-07-26 17:14:01 +08:00
a609b92b3c
fix(ilm): retry transient scope admission races ( #5280 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 17:13:53 +08:00
058f81c61f
fix(ilm): deduplicate manual transition worker results ( #5278 )
...
* fix(ilm): fail closed on unsafe manual job recovery
Mark expired manual transition jobs Unknown when recovery cannot prove queued worker outcomes are durable. Enforce ETag-guarded admission release with exact delete preconditions so stale releasers cannot remove a replacement admission, while still allowing drained cancelled jobs to terminate.
Co-Authored-By: heihutu <[email protected] >
* style(ilm): format manual recovery imports
Apply rustfmt import ordering after merging main into the manual recovery branch.
Co-Authored-By: heihutu <[email protected] >
* fix(ilm): deduplicate manual transition worker results
Persist per-task manual transition worker result markers before applying job counters so duplicate worker completion reports are no-ops. Reconcile persisted markers during drained-queue lease renewal and recovery to restore marker-before-record crash windows. Fail closed when persisted worker result markers are corrupt.
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-07-26 08:28:33 +00:00
b4e3c7117e
fix(ilm): fail closed on unsafe manual recovery ( #5276 )
...
fix(ilm): fail closed on unsafe manual job recovery
Mark expired manual transition jobs Unknown when recovery cannot prove queued worker outcomes are durable. Enforce ETag-guarded admission release with exact delete preconditions so stale releasers cannot remove a replacement admission, while still allowing drained cancelled jobs to terminate.
Co-authored-by: heihutu <[email protected] >
2026-07-26 07:36:58 +00:00
23f4683f20
test(ilm): cover queue terminal partial reports ( #5277 )
...
Cover manual transition terminal job records for queue closed and queue send timeout outcomes so backpressure summaries remain partial with the expected counters and queue snapshots.
Co-authored-by: heihutu <[email protected] >
2026-07-26 07:21:37 +00:00
a539b33583
test(perf): tolerate empty paired runner node args ( #5275 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 07:06:27 +00:00
4e63ee962f
test(perf): preflight GET smoke buckets ( #5274 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 07:01:35 +00:00
12b7f22fca
test(ilm): cover stale transition admission reclaim ( #5273 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 06:55:36 +00:00
a047bbfcfb
test(ilm): cover manual transition worker failure summary ( #5272 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 06:45:06 +00:00
houseme and GitHub
556f8ed62f
chore(deps): update flake.lock ( #5271 )
...
Flake lock file updates:
• Updated input 'nixpkgs':
'github:NixOS/nixpkgs/20535e4' (2026-07-18)
→ 'github:NixOS/nixpkgs/335f073' (2026-07-24)
• Updated input 'rust-overlay':
'github:oxalica/rust-overlay/afacd68' (2026-07-19)
→ 'github:oxalica/rust-overlay/fe21243' (2026-07-26)
2026-07-26 06:40:33 +00:00
02ad75e552
test(tier): cover committed prepare replay fanout ( #5270 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 13:41:37 +08:00
21c85481b8
test(ilm): cover unknown manual transition worker loss ( #5269 )
...
test(ilm): cover unknown state after lost worker result
Co-authored-by: heihutu <[email protected] >
2026-07-26 13:41:26 +08:00
d5409845e2
test(perf): add exact 1MiB ABBA benchmark drivers ( #5260 )
...
* test(perf): add exact 1mib get abba harness
Add a backlog#1434 exact-1MiB GET attribution wrapper around the codec streaming smoke runner. The harness fixes the legacy versus codec-legacy ABBA profile order, the outer ReaderStream buffer axis, path-proof artifacts, and GET stage-metrics capture so reviewers can reproduce isolated-host attribution without drifting the experiment matrix.
Verification:
- scripts/test_get_1mib_abba_stage_metrics.sh
- bash -n scripts/run_get_1mib_abba_stage_metrics.sh scripts/test_get_1mib_abba_stage_metrics.sh
- git diff --check
Co-Authored-By: heihutu <[email protected] >
* test(perf): add exact 1MiB handoff ABBA driver
Add a backlog#1434 benchmark orchestrator for isolated-host exact-1MiB handoff evidence. The runner records A/B/B/A and C/D/D/C legs, server provenance, expected reader path labels, inner and outer buffer capacity labels, and stage metrics capture arguments while delegating workload execution to the existing enhanced batch benchmark driver.
Verification:
- scripts/test_exact_1mib_handoff_abba.sh
- bash -n scripts/run_exact_1mib_handoff_abba.sh scripts/test_exact_1mib_handoff_abba.sh
- make script-tests
- git diff --check
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-07-26 13:41:00 +08:00
7667b7aaf8
feat(admin): expose ILM expiry status ( #5268 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 05:32:28 +00:00
29b4a98e74
test(ilm): cover same-scope async transition conflict ( #5267 )
...
Add a black-box e2e for concurrent manual transition durable jobs with the same bucket and prefix. The test asserts that exactly one request is accepted, the other returns 409 with the active job status and cancel endpoint, and the accepted job reaches a completed terminal status after queued transitions settle.
Verification:
- cargo fmt --all --check
- git diff --check
- CARGO_TARGET_DIR=/private/tmp/rustfs-target-1481-same-scope cargo test -p e2e_test --lib reliant::tiering::test_manual_transition_async_same_scope_conflict_reports_active_job -- --exact --nocapture
Co-authored-by: heihutu <[email protected] >
2026-07-26 04:51:51 +00:00
fa7499ce1c
fix: treat blank console address as disabled ( #5266 )
...
Keep startup validation and console server config consistent for whitespace-only console listener addresses.
Co-authored-by: heihutu <[email protected] >
2026-07-26 04:35:42 +00:00
1397a4e7ca
feat(ilm): expose lifecycle expiry scanner counters ( #5262 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 12:11:03 +08:00
afaea2a3ec
test(ilm): cover noncurrent version expiry e2e ( #5264 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 12:10:34 +08:00
78dd2d40d3
test(ilm): cover deterministic manual transition cancel ( #5263 )
...
Add a focused ecstore regression that exercises active manual transition cancellation through the existing cancel_check hook after scan progress has been made. The test verifies the cancelled report, dry-run counters, and opaque resume cursor without relying on wall-clock timing.
Co-authored-by: heihutu <[email protected] >
2026-07-26 04:03:19 +00:00
342f9f94bc
test(ilm): cover manual transition queue pressure status ( #5265 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 04:02:44 +00:00
d887e7e31d
test(internode): pin msgpack rollout gates ( #5261 )
...
Extend the internode gRPC benchmark driver with P2 request-only, canary, after, and rollback phases. The request-only phase proves that requesting msgpack-only without fleet confirmation keeps compatibility JSON fields, while canary and rollback materialize the operator states needed for mixed-version convergence without claiming real fleet soak evidence.
Verification:
- scripts/test_internode_grpc_ab_bench.sh
- bash -n scripts/run_internode_grpc_ab_bench.sh scripts/test_internode_grpc_ab_bench.sh
- git diff --check
Co-authored-by: heihutu <[email protected] >
2026-07-26 03:58:47 +00:00
0eb9dd5bdc
test(perf): add pinned paired ABBA benchmark ( #5259 )
...
test(perf): add pinned paired abba bench
Add a backlog#1432 paired benchmark orchestrator that runs MinIO/RustFS in an A1/B1/B2/A2 schedule while requiring immutable server identity, source revision or release, and ACK contract labels. The runner delegates actual workload execution to run_object_batch_bench_enhanced.sh so node metrics, resource captures, and provenance stay in the shared artifact format.
Verification:
- scripts/test_pinned_paired_abba_bench.sh
- bash -n scripts/run_pinned_paired_abba_bench.sh scripts/test_pinned_paired_abba_bench.sh
- git diff --check
Co-authored-by: heihutu <[email protected] >
2026-07-26 03:51:35 +00:00
bdf3f0484d
test(ilm): cover manual job status after restart ( #5256 )
...
* test(ilm): cover manual job status after restart
Co-Authored-By: heihutu <[email protected] >
* test(ilm): retry job status recovery after restart
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-07-26 03:29:47 +00:00
e897b2d7bb
fix: reject overlapping console listener address ( #5257 )
...
Fail startup when the configured console listener resolves to the same listener port covered by the S3 address. This keeps SO_REUSEPORT from hiding an intra-process S3/console endpoint collision.
Co-authored-by: heihutu <[email protected] >
2026-07-26 03:27:13 +00:00
92f72c3912
fix(ilm): normalize cancelled manual job reports ( #5255 )
...
Ensure cancelled durable manual transition jobs expose a cancelled report both when worker results drain after a cancel request and when legacy persisted records are decoded.
Co-authored-by: heihutu <[email protected] >
2026-07-26 03:18:53 +00:00
6fa2d06731
fix(ilm): honor explicit object lock metadata ( #5253 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 02:57:37 +00:00
18ff36c22d
test(ilm): cover manual transition job auth matrix ( #5254 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 02:55:38 +00:00
42fc840630
test(e2e): cover manual transition active cancel ( #5252 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 02:51:24 +00:00
3fe935982f
test(e2e): assert msgpack decode-error controls ( #5251 )
...
Extend the inline fast-path mixed-msgpack E2E collector to capture msgpack/json decode-error counters by direction, message, and codec. Assert those counters remain unchanged for the multipart, part-number, SSE, compression, and transition fallback-control scenarios.
Co-authored-by: heihutu <[email protected] >
2026-07-26 02:07:39 +00:00
6d8e196f36
feat(ilm): trace lifecycle expiry execution ( #5250 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-26 01:58:48 +00:00
77b5e1b64c
fix(ilm): report manual transition tier failures ( #5238 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-25 18:02:37 +00:00
23a5db4012
fix(ilm): preserve lifecycle version groups ( #5239 )
...
* fix(ilm): evaluate complete version groups
Co-Authored-By: heihutu <[email protected] >
* feat(ilm): log replication expiry blocks
Co-Authored-By: heihutu <[email protected] >
* fix(ilm): diagnose incomplete noncurrent chains
Co-Authored-By: heihutu <[email protected] >
* test(ilm): cover purge-pending version groups
Add regression coverage for lifecycle-only version listing so purge-pending versions stay present for ILM evaluation while the public ListObjectVersions projection remains filtered.
Refs rustfs/backlog#1500
Co-Authored-By: heihutu <[email protected] >
* feat(ilm): log lifecycle evaluation failures
Emit structured lifecycle_evaluation_failed events when version group loading or evaluation fails during immediate and existing-object expiry scans.
Refs rustfs/backlog#1503
Co-Authored-By: heihutu <[email protected] >
* test(ilm): cover incomplete noncurrent chains
Pin the fail-closed behavior for noncurrent expiration when successor_mod_time is missing and reuse a stable structured event name for that skip path.
Refs rustfs/backlog#1502
Co-Authored-By: heihutu <[email protected] >
* test(ilm): cover one-day noncurrent expiry boundary
Add a runtime regression test proving NoncurrentVersionExpiration Days=1 stays inactive before expected_expiry_time and deletes exactly at the computed due boundary.
Refs rustfs/backlog#1504
Co-Authored-By: heihutu <[email protected] >
* fix(ilm): keep transition checks after incomplete expiry
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-07-25 17:42:02 +00:00
516f7fecc1
fix(tier): converge config after peer recovery ( #5240 )
...
Retry peer tier config reloads after committed mutations so recovered nodes converge without requiring a second admin change.
Co-authored-by: heihutu <[email protected] >
2026-07-25 17:25:37 +00:00
1e95e6d311
fix(ilm): harden durable transition admission ( #5235 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-25 15:46:55 +00:00
3cbe3d6b94
fix(tier): reconcile committed mutation replay ( #5230 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-25 15:20:54 +00:00
6974963e20
feat(ilm): add durable manual transition job store ( #5229 )
...
* feat(ilm): add manual transition job route contract
Refs #1479
Co-Authored-By: heihutu <[email protected] >
* feat(ilm): add durable manual transition job store
Co-Authored-By: heihutu <[email protected] >
* fix(ilm): harden durable transition job cancellation
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-07-25 14:54:14 +00:00
7ab0955f8b
test(e2e): stabilize tier and storage class checks ( #5228 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-25 14:21:52 +00:00
2cf5fd6bfc
fix(getobject): avoid duplicate downstream-close metrics ( #5231 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-25 14:13:47 +00:00
de2c337fae
test(e2e): cover async transition limit partial ( #5233 )
...
Cover async manual transition jobs that finish as partial because maxObjects truncates the scan, including terminal cancel idempotence and unchanged report counters.
Co-authored-by: heihutu <[email protected] >
2026-07-25 14:05:47 +00:00
5988606e68
test(internode): extend fallback and transition coverage ( #5232 )
...
Add decode-error metrics for internode msgpack/json compatibility paths, extend the mixed fallback e2e assertions for transitioned multipart partNumber reads, and cover manual transition async status polling plus inactive-owner status behavior.
Co-authored-by: heihutu <[email protected] >
2026-07-25 13:26:23 +00:00
ffde6c43ee
feat(ilm): add manual transition job route contract ( #5221 )
...
Refs #1479
Co-authored-by: heihutu <[email protected] >
2026-07-25 12:22:46 +00:00
8e83087ba4
fix(tier): handle mutation intent CAS races ( #5227 )
...
* test(scripts): expand internode grpc ab env coverage
* fix(tier): handle mutation intent CAS races
Make tier mutation intent advancement retry idempotently when an If-Match CAS loses to a matching committed peer update.
Expand four-node inline fallback E2E coverage for mixed msgpack controls, transition readiness evidence, and per-node environment overrides.
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-07-25 11:10:13 +00:00
2dc4d0b651
refactor(getobject): scope downstream close tagging ( #5224 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-25 09:36:19 +00:00
2ee111ad8b
feat(ilm): add durable manual transition jobs ( #5223 )
...
Refs #1479
Co-authored-by: heihutu <[email protected] >
2026-07-25 09:12:44 +00:00
9ddb30139d
fix(getobject): distinguish downstream output closure ( #5220 )
...
fix(getobject): preserve internal broken pipe failures
Co-authored-by: heihutu <[email protected] >
2026-07-25 08:22:20 +00:00
ce41adfa9b
test(ilm): cover manual transition e2e gaps ( #5219 )
...
* test(ilm): cover manual transition queue pressure
Co-Authored-By: heihutu <[email protected] >
* test(protos): serialize msgpack-only env tests
Co-Authored-By: heihutu <[email protected] >
---------
Co-authored-by: heihutu <[email protected] >
2026-07-25 07:00:24 +00:00
houseme and GitHub
dfb0a20048
test(rpc): add corrupt-json decode coverage ( #5216 )
...
* test(rpc): add corrupt-json decode coverage
* test(ilm): assert manual transition status-less contract
2026-07-25 01:03:59 +00:00
187a060919
test(internode): pin msgpack gate rollback coverage ( #5203 )
...
Add test coverage for the msgpack-only request/fleet confirmation truth table and exact request JSON policy manifest.
Pin request and response rollback behavior so removing either gate restores JSON compatibility while both gates enter msgpack-only for eligible fields.
Co-authored-by: heihutu <[email protected] >
2026-07-24 15:16:23 +00:00
cda443bd81
feat(ilm): reject overlapping manual transition runs ( #5202 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-24 14:56:42 +00:00
44b1916103
fix(getobject): enrich stream error context ( #5201 )
...
Co-authored-by: heihutu <[email protected] >
2026-07-24 14:47:56 +00:00
houseme and GitHub
20c4ea864a
fix(ecstore): fix wide-prefix listing stalls and decode downstream logging ( #5198 )
...
* fix(ecstore): handle list stall and downstream decode logs
* docs(ecstore): keep wide-directory stall context for list_dir
2026-07-24 14:05:27 +00:00
d1c2c42c90
fix(internode): align msgpack benchmark gates ( #5197 )
...
Update the internode gRPC benchmark P2 env output to require both the msgpack-only request flag and the fleet-confirmed gate before measuring a true msgpack-only phase.
Document the dual-gate rollback semantics and add a dry-run script test so the benchmark driver cannot silently regress to the single-flag flow.
Co-authored-by: heihutu <[email protected] >
2026-07-24 13:32:44 +00:00
dd46de0945
fix(heal): report no-parity bitrot as unrecoverable ( #5192 )
...
Keep corrupted no-parity heal results on the integrity-failure path, preserve the object geometry in operator output, and document the recovery boundary for historical bad shards.
Co-authored-by: heihutu <[email protected] >
2026-07-24 20:20:40 +08:00