唐小鸭
7993e11058
docs(s3): record object-key path-segment validation as intentional ( #7314 )
2026-09-06 23:27:10 +08:00
houseme
37ead2f69c
test(ilm): align feature matrix lifecycle assertions ( #7311 )
...
Co-authored-by: zhi22915 <qiuzgang@gmail.com >
2026-09-06 23:27:01 +08:00
houseme
1b1e590df7
test(scanner): verify quota state across reset and owner restart ( #7303 )
...
* test(scanner): verify quota state across reset and owner restart
Co-Authored-By: heihutu <heihutu@gmail.com >
Co-Authored-By: zhi22915 <qiuzgang@gmail.com >
* fix: restore ILM transition and lifecycle validation (#7312 )
Co-authored-by: zhi22915 <qiuzgang@gmail.com >
---------
Co-authored-by: heihutu <heihutu@gmail.com >
Co-authored-by: zhi22915 <qiuzgang@gmail.com >
2026-09-06 23:26:01 +08:00
houseme
086ee8e48a
fix(scanner): require root publication proof before dirty ack ( #7297 )
...
* fix(scanner): require root publication proof before dirty ack
Bind ACK expectations to validated scan candidates and confirm the actual primary-root revision and readback. Retain saved outcomes and dirty responsibility when stronger evidence is unavailable. Isolate CAS attempt confirmation and invalidate proof after scope mutations.
Revalidate observed candidate reuse before issuing a new publication proof, preserve the exact validated authoritative baseline work digest, and settle fixture commit tails before stable maintenance scans. Keep scoped ACK production disabled.
Co-Authored-By: heihutu <heihutu@gmail.com >
Co-Authored-By: zhi22915 <qiuzgang@gmail.com >
* fix: restore ILM transition and lifecycle validation (#7316 )
Co-authored-by: zhi22915 <qiuzgang@gmail.com >
---------
Co-authored-by: heihutu <heihutu@gmail.com >
Co-authored-by: zhi22915 <qiuzgang@gmail.com >
2026-09-06 23:25:40 +08:00
Zhengchao An
22bff27aee
fix(storage): derive multipart identity from stored parts ( #7305 )
2026-09-06 22:04:15 +08:00
houseme
8a20498705
fix(heal): retain completed reports during clock rollback ( #7299 )
...
Treat a negative wall-clock age as zero without bypassing count or byte eviction. Cover canonical and alias queries, terminal outcomes, exact TTL expiry, and capacity limits during rollback.
Co-authored-by: heihutu <heihutu@gmail.com >
Co-authored-by: zhi22915 <qiuzgang@gmail.com >
2026-09-06 21:28:22 +08:00
houseme
c3e6d90c6f
docs(heal): clarify start retries and execution budgets ( #7300 )
...
Distinguish control requests, cumulative task execution and object retries. Explain ambiguous responses and bounded envelope replay without promising HTTP idempotency or changing runtime policy.
Co-authored-by: heihutu <heihutu@gmail.com >
Co-authored-by: zhi22915 <qiuzgang@gmail.com >
2026-09-06 21:27:37 +08:00
Zhengchao An
d2af8f073e
test(s3): exclude invalid lifecycle filter vector ( #7295 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-09-06 21:21:12 +08:00
Zhengchao An
2baba1bda7
fix(scanner): preserve verified maintenance digest ( #7293 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-09-06 21:20:58 +08:00
Zhengchao An
bf2ca9113f
test(scanner): settle fixture writes before activity baseline ( #7290 )
2026-09-06 21:20:46 +08:00
Zhengchao An
f474ea30d4
fix(admin): preserve decommission readiness error ( #7285 )
2026-09-06 21:20:32 +08:00
cxymds
002ac9544c
feat(ilm): add immutable legacy recovery exports ( #7283 )
...
* feat(ilm): add immutable legacy recovery exports
* feat(ilm): add legacy recovery disposition records (#7292 )
* fix(ilm): stabilize legacy recovery decode errors
* fix(admin): route recovery auth errors through gateway
* fix(ilm): resolve recovery disposition clippy errors
* fix(ilm): remove redundant recovery test clones
2026-09-06 21:20:16 +08:00
Zhengchao An
d74d970e24
fix(ecstore): retain namespace ownership during multipart commit ( #7282 )
2026-09-06 21:20:02 +08:00
Zhengchao An
cc15eae479
fix(lifecycle): allow multiple filter predicates without And wrapper ( #7298 )
2026-09-06 21:09:11 +08:00
dependabot[bot]
c130d00d4b
chore(deps): bump golang.org/x/net from 0.54.0 to 0.55.0 in /scripts/compat/heal-outcome in the go_modules group across 1 directory ( #7296 )
...
chore(deps): bump golang.org/x/net
Bumps the go_modules group with 1 update in the /scripts/compat/heal-outcome directory: [golang.org/x/net](https://github.com/golang/net ).
Updates `golang.org/x/net` from 0.54.0 to 0.55.0
- [Commits](https://github.com/golang/net/compare/v0.54.0...v0.55.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/net
dependency-version: 0.55.0
dependency-type: indirect
dependency-group: go_modules
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-06 19:13:21 +08:00
dependabot[bot]
e49d9cdea2
chore(deps): bump the go_modules group across 1 directory with 2 updates ( #7288 )
...
Bumps the go_modules group with 1 update in the /scripts/compat/heal-outcome directory: [golang.org/x/crypto](https://github.com/golang/crypto ).
Updates `golang.org/x/crypto` from 0.37.0 to 0.52.0
- [Commits](https://github.com/golang/crypto/compare/v0.37.0...v0.52.0 )
Updates `golang.org/x/net` from 0.39.0 to 0.54.0
- [Commits](https://github.com/golang/net/compare/v0.39.0...v0.54.0 )
---
updated-dependencies:
- dependency-name: golang.org/x/crypto
dependency-version: 0.52.0
dependency-type: indirect
dependency-group: go_modules
- dependency-name: golang.org/x/net
dependency-version: 0.54.0
dependency-type: indirect
dependency-group: go_modules
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-06 18:56:54 +08:00
houseme
f5778d8b97
chore(deps): refresh concurrency and protocol dependencies ( #7289 )
...
chore(deps): update Crossbeam, Redis, DER, and ipnet
Refresh the shared concurrency, Redis client, DER decoding and IP network dependencies while retaining existing feature selections and the hotpath pin.
Co-authored-by: heihutu <heihutu@gmail.com >
Co-authored-by: zhi22915 <qiuzgang@gmail.com >
2026-09-06 18:51:12 +08:00
Zhengchao An
9da42a899a
test(connect): refresh offline enrollment e2e chain ( #7294 )
2026-09-06 18:30:04 +08:00
Henry Guo
3d46ed312a
feat(scanner): reuse complete observed scan candidates ( #7206 )
2026-09-06 17:52:52 +08:00
Zhengchao An
3496277e7c
test(ecstore): drain source writes before corrupting shards ( #7291 )
2026-09-06 17:51:07 +08:00
cxymds
0b72f39023
fix(tier): avoid re-fencing published mutations ( #7274 )
2026-09-06 16:57:03 +08:00
Zhengchao An
30a0937a7d
fix(ecstore): retain single-delete physical namespace ownership ( #7287 )
2026-09-06 16:56:24 +08:00
houseme
5b962b6c58
feat(heal): expose compatible canonical v3 outcomes ( #7256 )
...
* feat(heal): expose compatible canonical v3 outcomes
Serialize the existing canonical heal outcome, retain the v3 summary vocabulary, and reject or conservatively adapt contradictory peer success responses. Preserve progress and bounded result cursors without treating legacy storage responses as repair proof.
Add optional SDK outcome and cursor support with shared Rust fixtures, pinned legacy Go decoder and mc polling checks, and explicit compatibility limits.
Co-Authored-By: heihutu <heihutu@gmail.com >
Co-Authored-By: zhi22915 <qiuzgang@gmail.com >
* fix(madmin): box heal stop task status outcome
Co-Authored-By: heihutu <heihutu@gmail.com >
Co-Authored-By: zhi22915 <qiuzgang@gmail.com >
---------
Co-authored-by: heihutu <heihutu@gmail.com >
Co-authored-by: zhi22915 <qiuzgang@gmail.com >
2026-09-06 16:46:42 +08:00
houseme
0ee5408b94
feat(scanner): preserve bounded bootstrap admission fairness ( #7260 )
...
feat(scanner): retain bounded bootstrap admission fairness
Keep a leader-local bounded cohort across scanner retries and preserve
waiting bucket priority during dirty arrivals and capacity overflow.
Order source permits in the dispatcher without changing result identity,
parent budgets, explicit cycle timing, or persistent coverage evidence.
Co-authored-by: heihutu <heihutu@gmail.com >
Co-authored-by: zhi22915 <qiuzgang@gmail.com >
2026-09-06 16:45:57 +08:00
houseme
cb3100a252
fix(scanner): visit compacted subtrees during deep scans ( #7270 )
...
Co-authored-by: heihutu <heihutu@gmail.com >
Co-authored-by: zhi22915 <qiuzgang@gmail.com >
2026-09-06 16:45:17 +08:00
houseme
3a4afe9b38
fix(heal): bound cross-page object retry delays ( #7273 )
...
Retain failed identities in an execution-local count and byte bounded window so healthy later pages can advance. Preserve retry jitter, deadlines, terminal accounting and pressure pacing, with deterministic head-of-line and capacity regressions.
Co-authored-by: heihutu <heihutu@gmail.com >
Co-authored-by: zhi22915 <qiuzgang@gmail.com >
2026-09-06 16:44:59 +08:00
houseme
71859ff83c
fix(scanner): resume committed cleanup when scanning is disabled ( #7281 )
...
Run one supervised cleanup attempt for an existing operator reset, with
strict phase and revision checks under the original leader lock. Keep v3
reset authorization and responses unchanged, report deferred status, and
bound probe and shutdown waits without aborting in-flight reset ownership.
Co-authored-by: heihutu <heihutu@gmail.com >
Co-authored-by: zhi22915 <qiuzgang@gmail.com >
2026-09-06 16:44:45 +08:00
houseme
cb72df269a
fix(heal): retain hints without verified repair receipts ( #7275 )
...
Stop task completion and legacy notices from discharging scanner retry hints. Preserve existing hints and their retry due time across admission observations, bound retry scheduling, and synchronize changed batches once even on cancellation.
Exercise the production MRF consumer, manager, event channel and scanner ledger. Document producer durability gaps without enabling successor activation or garbage collection.
Co-authored-by: heihutu <heihutu@gmail.com >
Co-authored-by: zhi22915 <qiuzgang@gmail.com >
2026-09-06 16:44:30 +08:00
Zhengchao An
d7b7d1835f
test(admin): validate repair futures with the default stack ( #7280 )
2026-09-06 15:43:13 +08:00
houseme
b92392a04a
ci: give target repair tests larger stack ( #7272 )
2026-09-06 15:38:05 +08:00
Zhengchao An
a40ec8a6f3
fix(odm): preserve progress when list-through is disabled ( #7278 )
...
* test(odm): cover disabled list-through continuation progress
* test(odm): cover literal cache tags in disabled list cursors
* fix(odm): preserve progress when list-through is disabled
2026-09-06 15:24:59 +08:00
Zhengchao An
c99efd9477
test(admin): box remote target repair scenarios ( #7277 )
2026-09-06 15:23:30 +08:00
Zhengchao An
27d593fa35
test(odm): bypass loopback proxies in native list fixtures ( #7276 )
2026-09-06 15:22:50 +08:00
Zhengchao An
0137d14064
test(odm): refresh verified Linux E2E selection ( #7271 )
2026-09-06 14:48:41 +08:00
houseme
1dddf357cd
test(scanner): add bounded cache cost microprofile ( #7261 )
2026-09-06 14:14:07 +08:00
houseme
395ba797fc
fix(admin): bound peer probe retries to one round deadline ( #7257 )
2026-09-06 14:13:47 +08:00
houseme
51893abfbf
feat(heal): pace running admin work at safe boundaries ( #7255 )
2026-09-06 14:13:35 +08:00
RustFS
92c17af8e3
ci(e2e): run distributed e2e on ubuntu-latest ( #7253 )
2026-09-06 14:13:21 +08:00
cxymds
f17f31a3df
feat(ilm): persist recovery controls for legacy tier journals ( #7252 )
2026-09-06 14:13:09 +08:00
Zhengchao An
1a88870809
fix(odm): preserve cursor compatibility and native source semantics ( #7238 )
2026-09-06 14:12:56 +08:00
唐小鸭
760c9d65be
fix(replication): close IAM snapshot, marker purge and broadcast gaps ( #7195 )
2026-09-06 14:12:25 +08:00
houseme
08283d1fdc
test(scanner): verify default scoped entry fallback walks ( #7241 )
2026-09-06 14:11:45 +08:00
houseme
6a323c3e91
test(heal): cover start retry and deadline outcome contracts ( #7242 )
2026-09-06 14:11:24 +08:00
Zhengchao An
1650f3c2a6
test(odm): verify global disable across restarts ( #7268 )
...
* test(odm): cover global disable across restarts
* test(odm): accept omitted V1 next marker
* test(odm): gate backfill GET until the crash completes
* test(odm): remove unused fault action import
* test(odm): assert GET gate suspension without network races
* test(odm): refresh verified Darwin E2E selection
2026-09-06 13:54:59 +08:00
Zhengchao An
38611d2510
fix(admin): compile metadata test helper only in tests ( #7266 )
...
fix(admin): compile metadata update facade only for tests
2026-09-06 13:28:58 +08:00
houseme
1a459d650f
chore(deps): update flake.lock ( #7264 )
...
Flake lock file updates:
• Updated input 'nixpkgs':
'github:NixOS/nixpkgs/e8be781' (2026-08-29)
→ 'github:NixOS/nixpkgs/17de0b9' (2026-09-04)
• Updated input 'rust-overlay':
'github:oxalica/rust-overlay/996e9b0' (2026-08-29)
→ 'github:oxalica/rust-overlay/c361047' (2026-09-05)
2026-09-06 13:19:50 +08:00
Zhengchao An
5aef1796cc
fix(odm): reject ambiguous native source dot segments ( #7263 )
...
* fix(odm): reject ambiguous native source dot segments
* docs(odm): align native provider limitations with implementation
2026-09-06 13:11:35 +08:00
Zhengchao An
a8aaadb886
fix(replication): preserve concurrent remote target changes ( #7262 )
...
* test(replication): cover concurrent remote target writes
* fix(replication): merge remote target writes under transactions
* test(replication): preserve concurrent repairs during target updates
* fix(replication): retain removal guards after request cancellation
* test(replication): enable loopback in ordinary target fixtures
* test(replication): isolate remote target mutation scenarios
* refactor(admin): keep target writes within existing boundaries
* test(replication): assert removed target cache state
* test(replication): inspect target cache before client refresh
2026-09-06 12:51:44 +08:00
Zhengchao An
71f1dcf859
fix(admin): follow recovery facade and error boundaries ( #7259 )
2026-09-06 12:35:54 +08:00
Zhengchao An
d44244f60f
fix(admin): preserve metadata during export and target repair ( #7258 )
...
* fix(admin): reject incomplete metadata backups
* fix(admin): repair remote targets from locked disk state
* test(admin): fence target repair against source changes
* fix(admin): report unreadable XML in metadata exports
* test(admin): enable loopback in target repair fixtures
* refactor(admin): remove unused metadata getter forwards
* test(admin): box direct target repair futures
* test(admin): box target repair scenarios at env boundary
2026-09-06 12:18:00 +08:00