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
4cdc6ae63f
fix(admin): refresh persisted pool states ( #3861 )
2026-06-25 21:08:55 +08:00
houseme
ef0dcec479
feat(ecstore): add deeper zero-copy ingest experiment ( #3847 )
...
* feat(storage): add multipart put stage metrics
* feat(scripts): add multipart put focus runner
* docs(operations): add multipart put server-path guides
* chore(scripts): add local rustfs restart helper
* docs(observability): add local metrics backend guide
* docs(observability): add localized multipart guides
* fix(ecstore): validate multipart batching path
* feat(obs): add erasure encode overlap metrics
* docs(ops): update overlap retest summary
* docs(ops): add batchblocks retest matrix
* docs(ops): extend overlap candidate summary
* docs(ops): capture 8-run overlap summary
* feat(storage): switch rename_data to msgpack map
* test(storage): add rename_data payload checks
* feat(object): add zero_copy_eager put path
* docs(ops): add zero_copy_eager put guide
* docs(ops): add deeper zero-copy next steps
* feat(ecstore): add bytesmut erasure ingest gate
* docs(ops): add bytesmut ingest summary
* docs(ops): extend bytesmut ingest matrix summary
* docs(ops): extend bytesmut larger-object summary
* docs(ops): capture bytesmut variability summary
* chore(scripts): add deeper zero-copy capture flow
* chore(scripts): add deeper zero-copy capture support
* docs(ops): add capture-backed bytesmut retest
* docs(ops): update deeper zero-copy retests
* chore(docs): keep issue-712 notes local only
Co-Authored-By: heihutu <heihutu@gmail.com >
2026-06-25 21:05:00 +08:00
houseme
96b1f5c373
feat(storage): optimize gt1g get read path ( #3860 )
...
* feat(storage): tune gt1g get read path
* docs(ops): add gt1g get benchmark guide
* feat(scripts): add gt1g get fallback runner
* test(storage): trim gt1g get helper warnings
* test(storage): reduce gt1g get helper type complexity
2026-06-25 20:12:08 +08:00
houseme
a30357d21e
feat(storage): extend PUT path tuning and observability ( #3829 )
...
* feat(storage): add multipart put stage metrics
* feat(scripts): add multipart put focus runner
* docs(operations): add multipart put server-path guides
* chore(scripts): add local rustfs restart helper
* docs(observability): add local metrics backend guide
* docs(observability): add localized multipart guides
* fix(ecstore): validate multipart batching path
* feat(obs): add erasure encode overlap metrics
* docs(ops): update overlap retest summary
* docs(ops): add batchblocks retest matrix
* docs(ops): extend overlap candidate summary
* docs(ops): capture 8-run overlap summary
* feat(storage): switch rename_data to msgpack map
* test(storage): add rename_data payload checks
* feat(object): add zero_copy_eager put path
* docs(ops): add zero_copy_eager put guide
* docs(ops): add deeper zero-copy next steps
2026-06-25 19:24:35 +08:00
cxymds
55cbfe256b
fix(heal): skip scanner object-dir recreate misses ( #3839 )
2026-06-25 14:52:24 +08:00
cxymds
4cb28abfc9
fix(scanner): reduce non-actionable scan noise ( #3840 )
2026-06-25 14:35:10 +08:00
cxymds
e6f04bed47
fix(heal): skip missing object-dir candidates ( #3834 )
2026-06-25 09:38:08 +08:00
Zhengchao An
ad6184b126
refactor: centralize iam runtime source helpers ( #3828 )
2026-06-24 22:49:24 +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
Zhengchao An
5cc8bd7952
refactor: centralize ecstore rpc test runtime sources ( #3818 )
2026-06-24 21:18:22 +08:00
Henry Guo
90f6371e29
fix(scanner): clear deleted bucket usage stats ( #3822 )
...
* fix(scanner): clear deleted bucket usage stats
* fix(scanner): preserve usage timestamp on bucket cleanup
---------
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
2026-06-24 21:08:32 +08:00
houseme
623fc801f1
feat(replication): support custom TLS for bucket targets ( #3825 )
...
* feat(replication): support insecure https bucket targets
* feat(replication): support custom ca bucket targets
* test(replication): satisfy e2e clippy for TLS helpers
* fix(replication): avoid native root panic for custom trust stores
* test(replication): decouple private IP target test from TLS roots
* test(replication): use target TLS client in private IP unit test
2026-06-24 20:23:20 +08:00
houseme
efebcb66be
feat(perf): add large PUT tuning and encode optimization ( #3816 )
2026-06-24 19:04:04 +08:00
cxymds
0ffd561daf
fix(health): decouple liveness and lock RPC deadlines ( #3824 )
2026-06-24 18:34:51 +08:00
cxymds
57e12e56d2
fix(admin): correct pool lifecycle status mapping ( #3823 )
2026-06-24 17:05:07 +08:00
cxymds
eef8f43251
fix: harden lock timeouts, health, and heal paths ( #3815 )
2026-06-24 15:48:06 +08:00
Zhengchao An
94034ef406
refactor: centralize ecstore batch sources and aliases ( #3817 )
2026-06-24 14:12:48 +08:00
cxymds
5eda332fee
fix(heal): recover shards after node rejoin ( #3814 )
2026-06-24 12:51:16 +08:00
Zhengchao An
aa089f18f2
refactor: centralize ecstore accessor runtime sources ( #3813 )
2026-06-24 11:05:30 +08:00
Zhengchao An
1a8ff1ea3e
refactor: centralize ecstore setup runtime sources ( #3812 )
2026-06-24 10:41:33 +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
Hiroaki KAWAI
fb06897650
fix(lock): respect requested acquire timeout ( #3804 )
...
Respect requested lock acquire timeout
Co-authored-by: cxymds <cxymds@gmail.com >
2026-06-24 10:22:25 +08:00
Zhengchao An
6b1b3800d7
refactor: centralize ecstore owner runtime sources ( #3811 )
2026-06-24 10:00:36 +08:00
Zhengchao An
3f624bf06c
refactor: centralize ecstore bucket runtime sources ( #3810 )
2026-06-24 09:41:11 +08:00
Zhengchao An
5b6c486b13
refactor: centralize ecstore locality runtime sources ( #3808 )
2026-06-24 08:42:36 +08:00
Zhengchao An
1c04b86494
refactor: centralize ecstore bucket runtime sources ( #3806 )
2026-06-24 08:00:04 +08:00
cxymds
c14a442586
fix(storage): harden rebalance and decommission state ( #3730 )
2026-06-24 07:59:39 +08:00
Zhengchao An
5046f788be
refactor: centralize ecstore lifecycle runtime sources ( #3805 )
2026-06-24 07:23:13 +08:00
Zhengchao An
7e60432588
refactor: centralize ecstore runtime owner sources ( #3798 )
2026-06-24 06:34:06 +08:00
Zhengchao An
1735dcde9c
refactor: centralize ecstore data-plane runtime sources ( #3797 )
2026-06-23 23:23:16 +08:00
Zhengchao An
e59e1852ec
refactor: centralize network client runtime sources ( #3796 )
2026-06-23 22:35:51 +08:00
Zhengchao An
726c26fa01
refactor: centralize RIO HTTP runtime sources ( #3795 )
2026-06-23 21:55:05 +08:00
houseme
0a00d8d500
perf(server): lighten internode data-plane stack ( #3735 )
...
* refactor(server): split internode dispatch scaffold
* test(server): cover internode dispatch prefix split
* refactor(server): name internode stack boundaries
* perf(server): skip internode request logging layer
* perf(server): skip internode trace layer
* perf(server): use lite internode request context
* feat(metrics): track internode rpc duration
* feat(ecstore): add put object stage summary logs
* test(metrics): update internode descriptor expectations
* fix(server): tighten internode path matching
* fix(pr): address review follow-up comments
* style(ecstore): simplify commit tail duration field
* refactor(ecstore): group put stage summary fields
* refactor(ecstore): inline put stage summary log
* fix(s3): return storage class for object attributes
* merge: sync latest main and resolve object attributes conflict
* fmt
* fix(server): remove duplicate rpc imports
* build(deps): bump memmap2 for RUSTSEC-2026-0186
* fix(s3select): align object_store with datafusion
* chore(deps): prune workspace dependencies
* perf(fuzz): optimize CI runtime with build/run split and matrix parallelization
Separate fuzz harness compilation from execution to eliminate redundant
builds across targets. Introduce matrix-based parallel execution for
PR smoke and nightly fuzz jobs.
Changes:
- Split CI workflow into `fuzz-build` (compile once) and matrix run jobs
(`pr-fuzz-smoke`, `nightly-fuzz-corpus`) that execute targets in parallel
- Add `BUILD_ONLY` mode to run_ci_targets.sh / run_nightly_targets.sh
- Add run_single_target.sh for matrix jobs (no build phase)
- Optimize `local_metadata` fuzz target: reduce prefix iterations from
8-10 (4 functions each) to 5 critical prefixes (parser-only), cutting
per-iteration cost by ~3-5x
- Move archive path validation (`validate_extract_relative_path`,
`normalize_extract_entry_key`) from `rustfs` to `rustfs-utils::path`,
eliminating `rustfs` binary crate dependency from fuzz harness
- Remove `rustfs` from fuzz/Cargo.toml (drops significant transitive deps)
- Add unit tests for archive path validation in rustfs-utils
- Update fuzz/README.md with new workflow and script documentation
Expected CI improvement: PR smoke wall-clock from ~120min (frequent
timeout) to ~40min; nightly from ~180min to ~60min.
* refactor(fuzz): consolidate scripts and fix prefix test alignment
Replace three duplicated shell scripts (run_ci_targets.sh,
run_nightly_targets.sh, run_single_target.sh) with a single
parameterized run.sh that supports BUILD_ONLY, SKIP_BUILD, and
MAX_TOTAL_TIME environment variables.
Fix local_metadata fuzz target prefix testing: replace always-true
'len > 0' guard with lengths aligned to xl.meta binary layout
(4/5/8/12 bytes for magic+version+header fields). Remove redundant
empty-slice test.
Hoist RUSTFLAGS to workflow top-level env to eliminate per-job
duplication. Update README with unified script documentation.
Net: -118 lines, zero functionality loss.
* perf(fuzz): optimize CI runtime with build/run split and matrix parallelization
Restructure fuzz CI workflow to eliminate redundant compilation and
run targets in parallel via matrix strategy.
Workflow changes:
- Split into fuzz-build (compile once) and matrix run jobs
- PR smoke: 3 targets parallel, 60s each, timeout 30min (was 120min)
- Nightly: 3 targets parallel, 300s each, timeout 60min (was 180min)
- Pass compiled harness via actions/artifact between jobs
- Hoist RUSTFLAGS to workflow top-level env
Script consolidation:
- Replace 3 duplicated scripts with single parameterized run.sh
- Supports BUILD_ONLY, SKIP_BUILD, MAX_TOTAL_TIME env vars
Target optimizations:
- Remove rustfs binary crate from fuzz dependencies (was pulling
979 transitive deps); move archive path validation to rustfs-utils
- Optimize local_metadata: reduce prefix iterations from 8-10x4
calls to 5 prefixes with parser-only (no decompress), aligned
with xl.meta binary layout (4/5/8/12 bytes)
- Add unit tests for archive path validation in rustfs-utils
- Update fuzz/README.md with unified script documentation
Expected: PR smoke wall-clock from ~120min (frequent timeout)
to ~40min; nightly from ~180min to ~60min.
* fix(rpc): resolve internode metrics via app context
* fmt
* ci: speed up fuzz smoke artifact restore
---------
Signed-off-by: houseme <housemecn@gmail.com >
2026-06-23 21:36:39 +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
唐小鸭
eff656e086
fix(storage): restore legacy SSE-S3 read compatibility ( #3584 )
...
* Update .gitignore
* Fix. fixed SSE-S3 compatibility issues in large-scale testing
* fix
* fix(ecstore): reject whitespace bucket names
* Update replication_extension_test.rs
* style(ecstore): format bucket whitespace test
---------
Co-authored-by: houseme <housemecn@gmail.com >
Co-authored-by: cxymds <cxymds@gmail.com >
2026-06-23 21:35:17 +08:00
Zhengchao An
5c60f0cae9
refactor: centralize owner server config reads ( #3793 )
2026-06-23 21:27:30 +08:00
Zhengchao An
70a2441407
refactor: route notify dispatch through app context ( #3789 )
...
* refactor: route notify dispatch through app context
* refactor: route admin IAM globals through app context (#3791 )
* refactor: centralize IAM root credential access (#3792 )
2026-06-23 20:05:28 +08:00
houseme
46775ae019
feat: harden runtime capability snapshots ( #3784 )
...
* feat(admin): expose runtime capability snapshots
* feat(runtime): refine workload admission snapshots
* test(ci): align architecture migration checks
* build(deps): bump memmap2 for RUSTSEC-2026-0186
* build(deps): refresh cargo deny lockfile
2026-06-23 18:10:49 +08:00
houseme
e42c6df0e8
fix(runtime): remove high-impact unwrap paths ( #3755 )
...
* fix(runtime): remove high-impact unwrap paths
* fix(runtime): propagate managed SSE metadata errors
* fix(runtime): add typed OPA config errors
* fix(runtime): harden config and credential helpers
* fix(runtime): remove SSE hmac unwraps
* fix(runtime): complete SSE helper error propagation
* fix(trusted-proxies): avoid legacy global init panics
* test(credentials): allow deprecated rpc token check
* fix(storage): harden object lock retention parsing
* chore(checks): refresh layer dependency baseline
* chore(checks): refresh layer dependency baseline
* Update layer-dependency-baseline.txt
Signed-off-by: houseme <housemecn@gmail.com >
* test(context): avoid clone on copy boot time
---------
Signed-off-by: houseme <housemecn@gmail.com >
Co-authored-by: Zhengchao An <anzhengchao@gmail.com >
Co-authored-by: heihutu <heihutu@gmail.com >
2026-06-23 15:12:47 +08:00
houseme
a6878e8fce
fix(runtime): remove startup panic fallbacks ( #3754 )
...
* fix(runtime): remove startup panic fallbacks
* test(runtime): cover buffer profile fallback safety
* test(runtime): reduce panic-style assertions
* fix(runtime): expose fallible env config setup
* test(runtime): simplify permit acquisition assertion
* test(runtime): tighten operation helper assertions
* fix(filemeta): stop panicking on invalid free version ids
* fix(init): satisfy buffer profile clippy lints
* fix(lock): harden fast lock config construction
* chore(checks): refresh layer dependency baseline
---------
Signed-off-by: houseme <housemecn@gmail.com >
2026-06-23 12:31:26 +08:00
houseme
583a23bdf2
fix(ecstore): replace panic-driven pool and set stubs ( #3753 )
...
* fix(ecstore): replace panic-driven pool and set stubs
* test(runtime): tolerate restricted local bind checks
* fix(ecstore): remove remaining trait stub placeholders
* fix(ecstore): tighten trait stub follow-up semantics
* chore: ignore local worktrees
* chore: update layer dependency baseline for resolve_* context entries
Add 7 accepted infra->app dependency entries introduced by recent
refactoring PRs (#3770 , #3771 , #3772 ) that route global state lookups
through app::context::resolve_* functions.
Co-Authored-By: heihutu <heihutu@gmail.com >
---------
Co-authored-by: heihutu <heihutu@gmail.com >
2026-06-23 12:31:17 +08:00
Zhengchao An
7499dd085d
refactor: collapse app notify thin compat boundaries ( #3768 )
...
* refactor: collapse app notify thin compat boundaries
* refactor: route app runtime consumers through context (#3769 )
2026-06-23 08:13:58 +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
6da61b44e5
refactor: expose remaining external owner symbols ( #3751 )
2026-06-22 23:35:50 +08:00
Zhengchao An
ec5f112205
refactor: expose scanner ECStore owner symbols ( #3749 )
2026-06-22 22:26:25 +08:00
Zhengchao An
db7ff8f513
refactor: expose external ECStore owner symbols ( #3748 )
2026-06-22 21:42:54 +08:00