Zhengchao An
e0972f19ac
fix(scanner): cache object lock config ( #4422 )
...
* fix(scanner): cache object lock config
* test(scanner): update lifecycle scanner items
2026-07-08 15:01:57 +08:00
houseme
2247823200
fix(runtime): remove tokio io-uring feature and add regression guard ( #4364 )
...
Drop the [target.'cfg(target_os = "linux")'.dependencies] tokio
"io-uring" feature from 6 crates and the rustfs binary. Because
.cargo/config.toml enables --cfg tokio_unstable globally, this feature
switched every Linux build's file I/O onto tokio's io_uring runtime
backend. Restricted Linux environments (Docker default seccomp, gVisor,
proot, old kernels) reject io_uring_setup with EACCES/ENOSYS, which
tokio surfaced as PermissionDenied and RustFS reported as
DiskAccessDenied at startup.
Add scripts/check_no_tokio_io_uring.sh so the feature cannot silently
return: it fails on any tokio dependency line enabling "io-uring", while
still allowing a future application-level io-uring crate dependency.
Wire it into make pre-commit/pre-pr/dev-check and CI.
Tracking: rustfs/backlog#890 (parent rustfs/backlog#897 )
Co-authored-by: heihutu <heihutu@gmail.com >
2026-07-07 17:47:59 +08:00
Zhengchao An
d0792b87be
refactor(lifecycle): extract core rule contracts ( #4258 )
2026-07-04 20:05:56 +08:00
Zhengchao An
8a0617865b
refactor(replication): route app storage through ecstore ( #4251 )
2026-07-04 02:00:28 +08:00
Zhengchao An
4883d3eb50
refactor(replication): route runtime facades through ecstore ( #4248 )
2026-07-03 23:49:24 +08:00
Zhengchao An
769549dd2c
refactor(replication): isolate status contract boundaries ( #4236 )
2026-07-03 19:40:49 +08:00
cxymds
83c32a7a40
fix(lifecycle): avoid blocking expiry enqueue ( #4197 )
2026-07-03 00:45:34 +08:00
cxymds
f8f373a236
fix: preserve compacted bucket counts ( #4183 )
...
Co-authored-by: overtrue <anzhengchao@gmail.com >
2026-07-02 22:34:47 +08:00
Rafael Peroco
54496f2796
fix(scanner): advance cycle counter when a cycle ends on budget ( #4163 )
2026-07-02 17:15:51 +08:00
cxymds
902cf1d3dc
fix: handle scanner task failures ( #4185 )
2026-07-02 16:34:56 +08:00
cxymds
b21b27dddd
fix: preserve scanner usage backups ( #4179 )
2026-07-02 16:33:59 +08:00
cxymds
d6a9826949
fix: preserve scanner usage state ( #4177 )
2026-07-02 16:32:51 +08:00
Zhengchao An
18d89d1e31
refactor(replication): route metadata contracts through crate ( #4160 )
2026-07-02 08:48:42 +08:00
Zhengchao An
14016dbe8c
refactor(scanner): hide replication queue DTOs ( #4150 )
2026-07-02 00:17:03 +08:00
Zhengchao An
fc806679fb
refactor(ecstore): add replication work bridges ( #4137 )
2026-07-01 18:37:01 +08:00
houseme
b16120dbcc
feat: optimize small GET read paths ( #4022 )
2026-07-01 15:40:00 +08:00
Zhengchao An
fab78f8402
refactor(scanner): use expiry runtime boundary ( #4079 )
2026-06-30 02:09:52 +08:00
Henry Guo
c200dc10d2
fix(scanner): preserve partial scan progress ( #3996 )
2026-06-29 10:43:25 +08:00
cxymds
0ff261864a
fix(scanner): harden data scanner integrity handling ( #4012 )
...
* fix(scanner): heal metadata scan failures
* fix(scanner): preserve dirty buckets after scan failures
* feat(scanner): record leader lock liveness
* fix(scanner): preserve failed deep scan state
* fix(scanner): reject untimestamped stale usage
* fix(scanner): report topology-derived admission limit
* fix(scanner): accumulate tier usage stats
* fix(scanner): guard data usage cache recursion
* feat(scanner): expose startup enabled status
* fix(scanner): continue after heal admission rejection
* fix(scanner): avoid cyclic root usage double count
* fix(scanner): preserve dirty markers on cache save failure
* feat(scanner): expose leader liveness status
* fix(scanner): avoid heal escalation for transient metadata reads
* feat(scanner): persist rejected heal retry candidates
* test(scanner): satisfy freshness status clippy
* test(app): avoid global store reinit in context test
* test(app): gate global store helper to tests
2026-06-29 08:19:58 +08:00
Zhengchao An
82bbef0b60
test: cover runtime and repair preservation ( #3964 )
2026-06-27 23:34:59 +08:00
Zhengchao An
1b3dea012e
refactor: route ecstore runtime globals through facade ( #3941 )
2026-06-27 12:27:03 +08:00
GatewayJ
675597ec16
fix(ecstore): handle stalled recovery reads and listings ( #3790 )
...
* fix(ecstore): handle stalled recovery reads and listings
* fix(rio): start HTTP stall timeout on read
* fix(ecstore): handle stalled reads and partial lists
* fix(ecstore): retire stalled shards and list errors
* fix(ecstore): preserve list merge lookahead entries
* fix(ecstore): bound zero-copy shard reads
* fix(ecstore): hedge stalled shard reads
* fix(ecstore): retire abandoned shard reads
* fix(ecstore): include part identity in metadata quorum
* fix(ecstore): validate heal shard sources
* fix(ecstore): verify reconstructed read shards
* chore(ecstore): log slow object read stages
* fix(heal): throttle auto heal during recovery
* fix(scanner): yield to foreground reads
* fix(scanner): track streaming object reads
* fix(ecstore): avoid false read heal fanout
* fix(ecstore): verify codec streaming reconstruction sources
* fix(ecstore): preserve quorum progress on slow shards
* fix(storage): restore read timeout facade
* fix(ecstore): retain fallback readers after quorum
* chore: allow decode helper argument lists
---------
Co-authored-by: overtrue <anzhengchao@gmail.com >
2026-06-27 10:21:09 +08:00
Henry Guo
a8327f8901
fix(scanner): account versioned delete markers in usage ( #3904 )
...
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
2026-06-26 18:34:21 +08:00
Zhengchao An
72ae43cb90
refactor: segment external storage contract imports ( #3908 )
2026-06-26 16:44:59 +08:00
Zhengchao An
1f7e159388
refactor: segment external storage api boundaries ( #3903 )
2026-06-26 15:10:49 +08:00
cxymds
0b9c8a7731
fix(heal): align scanner repair safety with quorum errors ( #3887 )
...
* fix(heal): avoid task-level delete on repair failure
* fix(scanner): avoid recreate for scanner heal checks
* fix(heal): preserve typed quorum failures
* test(heal): satisfy clippy bool assertion
2026-06-26 08:58:27 +08:00
Zhengchao An
4d6ea453a7
refactor: route scanner heal storage boundaries ( #3888 )
2026-06-26 05:24:41 +08:00
cxymds
86e9362459
fix(heal): canonicalize scanner object-dir repairs ( #3864 )
2026-06-25 22:07:38 +08:00
Henry Guo
30f781871d
fix(scanner): preserve dirty usage convergence ( #3844 )
...
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
2026-06-25 21:09:12 +08:00
cxymds
4cb28abfc9
fix(scanner): reduce non-actionable scan noise ( #3840 )
2026-06-25 14:35:10 +08:00
Zhengchao An
a935854b32
refactor: centralize scanner runtime source helpers ( #3827 )
...
* refactor: batch lifecycle runtime source handles
* refactor: centralize scanner runtime source helpers
2026-06-24 22:05:03 +08:00
cxymds
eef8f43251
fix: harden lock timeouts, health, and heal paths ( #3815 )
2026-06-24 15:48:06 +08:00
Hiroaki KAWAI
55b402ec2e
fix(scanner): avoid retrying usage-cache lock failures ( #3809 )
...
Avoid retrying scanner cache lock failures
2026-06-24 10:22:43 +08:00
Henry Guo
7bdb25ae9d
feat(scanner): define replication boundary contract ( #3630 )
...
* feat(scanner): define replication boundary contract
* fix(scanner): propagate replication boundary metrics
* fix(scanner): preserve repair metadata on merge
---------
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
Co-authored-by: houseme <housemecn@gmail.com >
2026-06-23 21:35:36 +08:00
Zhengchao An
5c60f0cae9
refactor: centralize owner server config reads ( #3793 )
2026-06-23 21:27:30 +08:00
Zhengchao An
30559f7e1b
refactor: collapse test fuzz ecstore thin bridges ( #3765 )
2026-06-23 07:04:51 +08:00
Zhengchao An
198fd4f150
refactor(runtime): route RustFS runtime consumers through storage owner ( #3756 )
2026-06-23 05:17:56 +08:00
Zhengchao An
e0b79aa00c
refactor: expose test fuzz owner symbols ( #3752 )
2026-06-23 01:11:46 +08:00
Zhengchao An
ec5f112205
refactor: expose scanner ECStore owner symbols ( #3749 )
2026-06-22 22:26:25 +08:00
Zhengchao An
88a87b3e8f
refactor: centralize external ECStore facade aliases ( #3746 )
2026-06-22 20:37:13 +08:00
Zhengchao An
d3796d6c10
refactor: remove external owner compat bridges ( #3741 )
2026-06-22 18:28:35 +08:00
Zhengchao An
b63b076275
refactor: remove remaining compatibility bridges ( #3738 )
2026-06-22 16:53:14 +08:00
安正超
cca9e83a8b
refactor: use relative standalone compat consumers ( #3734 )
2026-06-22 15:07:58 +08:00
安正超
7d81183cf1
refactor: use relative heal test compat consumers ( #3733 )
2026-06-22 14:55:12 +08:00
安正超
de158743c3
refactor: split compat facade imports ( #3716 )
2026-06-22 09:53:22 +08:00
安正超
c13f42e9a0
refactor: wrap disk rpc compat trait methods ( #3707 )
2026-06-22 06:31:24 +08:00
安正超
7eb9a4759e
refactor: wrap bucket compat trait methods ( #3706 )
2026-06-22 04:32:37 +08:00
安正超
d39815470e
refactor: prune consumer storage compat paths ( #3704 )
2026-06-22 02:31:30 +08:00
安正超
6b3d96fde3
refactor: prune trait import compat re-exports ( #3699 )
2026-06-21 23:17:58 +08:00
安正超
0cf9d07e40
refactor: prune test protocol compat aliases ( #3693 )
2026-06-21 18:09:39 +08:00