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
Zhengchao An
d3884ed3ea
test(odm): use fixed-size Azure request chunks ( #7254 )
2026-09-06 12:10:39 +08:00
Zhengchao An
282d6d5efe
fix(odm): decode encoded Azure blob names exactly once ( #7251 )
...
* fix(odm): decode encoded Azure blob names exactly once
* test(odm): cover Azure encoded name transport matrix
* test(odm): keep Azure cursor continuation query stable
2026-09-06 11:10:40 +08:00
RustFS
f0d865728c
ci(e2e): use tmpfs for distributed pool isolation ( #7207 )
...
* test(e2e): add distributed 4x4 validation
* ci(e2e): use tmpfs for distributed pool isolation
sm-standard-4 is an ARC pod without usable loop devices, so
mount -o loop fails with ENOENT before any pool filesystem is
attached. Sized tmpfs still gives each pool a distinct st_dev
and independent 1G statfs capacity.
Co-authored-by: RustFS <hello@rustfs.com >
* test(e2e): prove operations overlap data movement
---------
Co-authored-by: Zhengchao An <anzhengchao@gmail.com >
Co-authored-by: Cursor Agent <cursoragent@cursor.com >
2026-09-06 10:52:12 +08:00
cxymds
3df39ef4d7
fix(scanner): separate write retries from movement backlog ( #7249 )
2026-09-06 10:51:46 +08:00
Zhengchao An
b0c73c1224
fix(ecstore): retain namespace owners through local disk completion ( #7245 )
...
* fix(ecstore): retain namespace owners through local physical tails
(cherry picked from commit a2f242463316e87604feadbdac5e4148140e72c0)
* test(ecstore): expose stale fsync group cleanup
* fix(ecstore): capture complete fsync worker guard
(cherry picked from commit 1dc90bb836e20ea9ee45d0a629a9201e20d231c4)
* fix(ecstore): preserve successor fsync group registration
(cherry picked from commit c7dfaad90526052e56c57dafffa4813bdcde46ca)
* test(ecstore): mark physical owner fixtures as inline
* test(ecstore): wait for namespace owner release before asserting
The namespace owner tests decided that ownership had ended when the Weak probe stopped upgrading or when the mutation lease could be reacquired. Both signals fire before the owner guard's Drop decrements the pending counter: Arc releases its strong count before running Drop, and the lease drops its locks before its owner field. The rio-v2 lane hit that window in undo_fresh_version_keeps_physical_namespace_owner_after_timeout.
Extend every drain wait to also require namespace_commits_pending() to be false, so the assertions observe the completed release instead of racing it.
2026-09-06 10:51:38 +08:00
houseme
54c11ef28b
test(scanner): bound segment observation diagnostics ( #7240 )
...
* test(scanner): bound segment observation diagnostics
Co-Authored-By: heihutu <heihutu@gmail.com >
Co-Authored-By: zhi22915 <qiuzgang@gmail.com >
* test(scanner): observe committed fixture changes during walks
Co-Authored-By: heihutu <heihutu@gmail.com >
Co-Authored-By: zhi22915 <qiuzgang@gmail.com >
* test(scanner): validate segment fixture metadata and off state
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 >
Co-authored-by: overtrue <anzhengchao@gmail.com >
2026-09-06 10:51:30 +08:00