cxymds
25f81f812c
feat(site-replication): support custom TLS peers ( #4802 )
...
* feat(madmin): add site replication TLS settings
* feat(site-replication): support custom TLS peers
* test(site-replication): remove redundant clones
* test(site-replication): avoid needless resolver collection
2026-07-14 15:33:00 +08:00
houseme
cb977c4c5a
fix(admin): report unreachable info members as unknown with balanced drive counts ( #4607 )
...
fix(admin): report unreachable info members as `unknown` with balanced drive counts
`GET /rustfs/admin/v3/info` synthesizes an entry for every peer, but a peer
whose properties RPC failed below the offline threshold with no cached snapshot
was reported as `initializing` with an empty drive list. That drive list being
empty meant its drives disappeared from the backend summary entirely, so
`onlineDisks + offlineDisks` no longer equaled `totalDrivesPerSet` (an operator
sees `onlineDisks: 3, offlineDisks: 0` for a 4-drive set), and `initializing` is
a misleading state for a member that has been running for hours — it reads like
a node was ejected when nothing is wrong (upstream rustfs/rustfs#4566 ).
Changes:
- madmin: add `ItemState::Unknown` ("unknown") and an `unknownDisks` bucket on
`ErasureBackend` (serde `default`, so older payloads still deserialize).
- ecstore diagnostics: `get_online_offline_disks_stats` now returns a third
`unknown` bucket instead of folding those drives into `offline`, keeping
`online + offline + unknown == totalDrivesPerSet`.
- ecstore notification_sys: a probe miss below the failure threshold with no
cache is now reported as `unknown` (not `initializing`) and carries the host's
drives from the pool topology (tagged `unknown`) so the summary stays balanced;
drive synthesis is factored into `synthesized_disks(host, endpoints, state)`,
shared by the offline and unknown paths.
Tracked in rustfs/backlog#1049 (P1-A + P0-A).
Co-authored-by: heihutu <heihutu@gmail.com >
2026-07-09 04:50:20 +00:00
Zhengchao An
2dfad181a0
fix(admin): include accountinfo bucket quota
...
Expose accountinfo bucket quota only when a bucket quota is configured while preserving the existing response shape for buckets without quotas.
2026-07-09 04:52:52 +08:00
houseme
87044b2378
fix(obs): tighten low-risk telemetry correctness ( #4483 )
...
Refs rustfs/backlog#1007
Refs rustfs/backlog#986
- respect explicit log-target directives when injecting noisy-crate suppressions
- fix daily rotation day-boundary checks and add a short retry cooldown after failed rotations
- preserve recorder metadata across label variants and serialize gauge updates before export
- correct profiling target_env reporting, trace all=true parsing, cleaner accounting/docs, and legacy system interval rounding
Co-authored-by: heihutu <heihutu@gmail.com >
2026-07-08 14:06:19 +00:00
Zhengchao An
62a31e4ec4
fix(storage): address pending metadata and health gaps ( #4380 )
2026-07-08 00:15:07 +08:00
Zhengchao An
9dfeffc4c1
test: prune redundant cases and add high-risk coverage across crates ( #4208 )
...
Remove or consolidate 57 test cases that cannot catch regressions
(literal-constant asserts, construct-then-assert, derived-serde
round-trips, near-duplicate env/getter matrices) in common, config,
iam, madmin, and object-capacity, keeping all wire-format and
error-path guards. Add 13 tests for previously uncovered high-risk
behavior: filemeta version-sort determinism and merge resilience to
garbage headers, zip extraction path-traversal rejection and exact
limit boundaries, JWT tampered-signature rejection, and the bytes
variant of dual-key (rustfs/minio) metadata fallback and precedence.
Test-only change; no production code touched.
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-07-03 00:35:37 +08:00
cxymds
080363f10f
feat: harden site replication control plane ( #3842 )
2026-06-27 08:35:49 +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
Henry Guo
80144ec886
feat(scanner): expose usage freshness status ( #3577 )
...
* feat(scanner): expose usage freshness status
* fix(scanner): reset dirty usage cycle state
---------
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
2026-06-18 21:14:55 +08:00
Henry Guo
d28aedfbb3
feat(scanner): expose replication repair kind metrics ( #3476 )
2026-06-15 16:52:39 +08:00
Henry Guo
dd6b4c35ad
fix(scanner): harden lifecycle and tiering backlog ( #3469 )
...
* fix(scanner): expose lifecycle transition backlog
* fix(scanner): expose lifecycle expiry backlog
* fix(scanner): preserve lifecycle backlog states
---------
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
2026-06-15 15:01:21 +08:00
Henry Guo
46fb4bdc2f
feat(scanner): add source-aware maintenance controls ( #3461 )
...
* feat(scanner): add source-aware maintenance controls
* fix(scanner): preserve source control between cycles
---------
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
2026-06-15 12:12:05 +08:00
Henry Guo
2c5615d2ea
feat(scanner): expose distributed metrics ( #3452 )
...
* feat(scanner): expose distributed metrics
* docs(scanner): clarify distributed metrics collection
---------
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
Co-authored-by: houseme <housemecn@gmail.com >
2026-06-15 07:05:43 +08:00
Henry Guo
91f80a5585
feat(scanner): expose lifecycle transition status ( #3326 )
...
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
2026-06-10 16:45:02 +00:00
Henry Guo
66fd55a8e0
feat(scanner): expose pacing pressure status ( #3319 )
...
* feat(scanner): expose pacing pressure status
* fix(scanner): preserve merged pause pressure
* fix(scanner): default missing primary pressure
---------
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
2026-06-10 07:33:41 +00:00
cxymds
ddd35badad
fix(ecstore): avoid offline disks on admin timeout ( #3263 )
...
* fix(ecstore): avoid offline disks on admin timeout
* fix(ecstore): handle poisoned admin cache locks
* fix(ecstore): recover poisoned admin cache on success
---------
Co-authored-by: houseme <housemecn@gmail.com >
Co-authored-by: 安正超 <anzhengchao@gmail.com >
2026-06-08 08:35:36 +00:00
Henry Guo
4ae070c8cc
feat(scanner): expose scan partial source status ( #3247 )
...
* feat(scanner): expose scan partial source status
* fix(scanner): expose partial source in aggregated metrics
---------
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
Co-authored-by: cxymds <Cxymds@qq.com >
Co-authored-by: houseme <housemecn@gmail.com >
2026-06-07 06:40:04 +00:00
Sergei Z.
64feca3550
fix(user): service account expiration handling with RFC3339 ( #3078 )
...
fix(user): enhance service account expiration handling with RFC3339 support
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-25 04:27:25 +00:00
houseme
c90bfe2b23
fix(ecstore): harden runtime read-path quorum handling ( #2872 )
2026-05-08 09:56:39 +00:00
houseme
3dd0692917
refactor: unify credential env constants and deploy env usage ( #2821 )
...
Co-authored-by: Henry Guo <marshawcoco@gmail.com >
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
Co-authored-by: loverustfs <hello@rustfs.com >
Co-authored-by: 安正超 <anzhengchao@gmail.com >
2026-05-06 04:30:29 +00:00
houseme
1e9c75a201
feat(ecstore): enforce local disk topology guardrails and expose device ids ( #2679 )
2026-04-25 06:02:02 +00:00
houseme
b7a945e453
fix(madmin): restore server_info msgpack compatibility across mixed nodes ( #2621 )
2026-04-21 01:09:25 +00:00
houseme
28edfd6190
fix(storage): harden offline drive fail-fast paths ( #2564 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
2026-04-16 09:21:45 +00:00
Tunglies
579b124726
lint: clippy rules or_fun_call ( #2561 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-04-16 02:48:39 +00:00
Tunglies
49366ee200
chore(lint): clippy rules redundant_clone ( #2554 )
2026-04-15 13:54:07 +00:00
weisd
15995aae14
feat(admin): complete site replication support ( #2346 )
2026-03-31 13:01:38 +08:00
安正超
99dbe70a89
fix(madmin): handle blank service-account expiration ( #2254 )
...
Co-authored-by: heihutu <heihutu@gmail.com >
2026-03-22 13:44:05 +08:00
weisd
95850c1bcd
fix(admin): accept IAM service account exports ( #2249 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-03-21 13:44:46 +08:00
weisd
b9b7d86ae4
feat: improve legacy metadata and admin compatibility ( #2202 )
2026-03-18 21:05:09 +08:00
安正超
9d2b8822cf
refactor: stabilize heal format recovery integration tests ( #1984 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-02-27 15:26:19 +08:00
Jeff Poegel
c35ef84a8c
feat(iam): add OpenID Connect SSO with claim-based policy resolution ( #1875 )
...
Signed-off-by: houseme <housemecn@gmail.com >
Co-authored-by: houseme <housemecn@gmail.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
Co-authored-by: heihutu <30542132+heihutu@users.noreply.github.com >
Co-authored-by: loverustfs <hello@rustfs.com >
Co-authored-by: 安正超 <anzhengchao@gmail.com >
2026-02-26 14:03:17 +08:00
guojidan
9d5ed1acac
Feature/scanner performance optimization ( #498 )
...
* Refactor: reimplement scanner
Signed-off-by: RustFS Developer <dandan@rustfs.com >
* comment lock
Signed-off-by: junxiang Mu <1948535941@qq.com >
* remove dirty file
Signed-off-by: junxiang Mu <1948535941@qq.com >
* Fix: fix rebase
* fix(scanner): Improve error handling and logging
Signed-off-by: junxiang Mu <1948535941@qq.com >
---------
Signed-off-by: RustFS Developer <dandan@rustfs.com >
Signed-off-by: junxiang Mu <1948535941@qq.com >
Co-authored-by: RustFS Developer <dandan@rustfs.com >
2025-09-08 18:35:45 +08:00
houseme
5826396cd0
refactor: Restructure project layout and clean up dependencies ( #30 )
...
This commit introduces a significant reorganization of the project structure to improve maintainability and clarity.
Key changes include:
- Adjusted the directory layout for a more logical module organization.
- Removed unused crate dependencies, reducing the overall project size and potentially speeding up build times.
- Updated import paths and configuration files to reflect the structural changes.
2025-07-02 19:33:12 +08:00