weisd
f9475e10dc
fix(replication): preserve multipart pending state ( #3058 )
...
* Preserve multipart replication recovery state
Multipart uploads previously only scheduled replication after completion, leaving no persisted pending state for scanner recovery if the initial async work was lost. Persist the same pending replication metadata during multipart initialization and let completion evaluate the object metadata that was actually stored.
The scanner heal path also treated ordinary pending objects as delete-replication candidates. Restrict that path to delete markers and version purge state so pending objects remain eligible for object replication heal.
Constraint: Bucket replication recovery depends on persisted object metadata after the async queue is unavailable.
Rejected: Rely only on immediate completion-time scheduling | it cannot recover after process restart or worker loss.
Confidence: high
Scope-risk: moderate
Directive: Keep multipart upload initialization aligned with single PUT replication metadata semantics.
Tested: cargo fmt --all --check
Tested: cargo clippy --workspace --all-features --all-targets -- -D warnings
Tested: LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 make pre-commit
Tested: Runtime replication outage check confirmed multipart xl.meta stores PENDING status and timestamp.
* fix(replication): preserve version purge scanner state
Role-derived replication configs need target-scoped status strings before scanner heal can build per-target purge status. The duplicated replication-status assignment left version purge status unset, so scanner recovery could lose the target-level purge state.
Constraint: Scanner heal derives per-target purge decisions from version_purge_status_internal.
Rejected: Leave the duplicate as a harmless cleanup | it changes recovery behavior for role-only configs with version purge state.
Confidence: high
Scope-risk: narrow
Directive: Keep role-derived replication and version purge internal status mapping symmetric.
Tested: cargo fmt --all --check
Tested: cargo test -p rustfs-ecstore heal -- --nocapture
---------
Co-authored-by: wly <wlywly0735@126.com >
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-24 14:24:00 +00:00
houseme
d74e6eb042
refactor(tls): centralize runtime foundation ( #3065 )
...
* refactor(targets): move notify net helpers from utils
* refactor(tls): centralize runtime foundation
* refactor(targets): move notify net helpers from utils
* refactor(tls): centralize runtime foundation
* feat(tls-runtime): add TLS debug state and admin handler
* refactor(tls-runtime): unify TLS debug consumer status view
* fix(tls): address PR3065 review feedback
* refactor(tls): align debug status payload types
* refactor(targets): harden TLS hot reload paths
* fix(targets): resolve review-4348251652 findings
* fix(targets): finalize tls runtime review follow-ups
* fix(targets): harden tls reload and review follow-ups
* fix(targets): align tls reload handling across targets
* fix(targets): finalize tls reload state and metrics updates
* chore(deps): trim unused TLS deps
* style(targets): normalize TLS reload formatting
* refactor(targets): introduce tls runtime adapter path
* chore: update workspace manifests for tls refactor
* fix(tls): stabilize material reload and audit workflow
* fix(targets): refresh tls fingerprint flow across sinks
* fix(tls): align runtime coordinator and http reader updates
* fix(sftp): simplify protocol error mapping
* fix(tls): harmonize material loading behavior
* fix(server): finalize tls material wiring in startup flow
* fix(protos): tighten tls generation cache and deps
2026-05-24 06:41:15 +00:00
安正超
8be787387c
test(utils): cover bracketed IPv6 zone host parsing ( #3073 )
2026-05-24 03:18:56 +00:00
houseme
6264be437c
fix(storage): add scoped timeout policy and startup fs guardrail ( #3056 )
...
* fix(storage): add RUSTFS_NETWORK_MOUNT_MODE for CIFS/NFS backends
* style: fix cargo fmt formatting in disk_store.rs
* fix(storage): add RUSTFS_NETWORK_MOUNT_MODE for CIFS/NFS backends
Extend the TimeoutHealthAction introduced in #2996 to read_metadata,
list_dir, and disk_info operations when RUSTFS_NETWORK_MOUNT_MODE=true.
Also raises all drive operation timeouts to 60s (explicit per-operation
overrides still take precedence).
Closes #2790
* feat(startup): add unsupported filesystem policy guardrail
* chore(deps): refresh lockfile and dependency pins
* feat(ecstore): add scoped timeout health-action policy
* docs(config): document drive timeout health-action policy
* refactor(ecstore): cache timeout health policy per disk wrapper
* fix(storage): add RUSTFS_NETWORK_MOUNT_MODE for CIFS/NFS backends (#2838 )
* fix(storage): add RUSTFS_NETWORK_MOUNT_MODE for CIFS/NFS backends
* style: fix cargo fmt formatting in disk_store.rs
* fix(storage): add RUSTFS_NETWORK_MOUNT_MODE for CIFS/NFS backends
Extend the TimeoutHealthAction introduced in #2996 to read_metadata,
list_dir, and disk_info operations when RUSTFS_NETWORK_MOUNT_MODE=true.
Also raises all drive operation timeouts to 60s (explicit per-operation
overrides still take precedence).
Closes #2790
* fix(utils): map verified Linux filesystem magic values (#3051 )
* fix(utils): cover sha256 checksum validation (#3052 )
* fix(utils): cover sha256 checksum validation
* docs: clarify sha256 checksum validation
---------
Co-authored-by: houseme <housemecn@gmail.com >
Co-authored-by: 安正超 <anzhengchao@gmail.com >
* refactor(config): replace network mount mode with timeout profile preset
* fix(review): align fallback defaults and extend fs-type detection
* fix(review): cache timeout profile and restore probe timeout semantics
* refactor(ecstore): cache timeout health policy lookup
* perf(ecstore): cache active probe timeout per monitor task
---------
Co-authored-by: mistik <mistiklord4@gmail.com >
Co-authored-by: 安正超 <anzhengchao@gmail.com >
2026-05-22 06:37:30 +00:00
安正超
3e3fcbf44d
fix(utils): cover sha256 checksum validation ( #3052 )
...
* fix(utils): cover sha256 checksum validation
* docs: clarify sha256 checksum validation
2026-05-22 02:45:53 +00:00
安正超
0d94437788
fix(utils): map verified Linux filesystem magic values ( #3051 )
2026-05-22 02:37:50 +00:00
houseme
dcbffb084f
chore(deps): refresh workspace deps and linux fs_type gating ( #3030 )
...
* chore(deps): refresh workspace deps and linux fs_type gating
- refresh workspace dependency pins and lockfile updates
- remove now-unused crate dependency entries in multiple Cargo.toml files
- enable profiling export defaults in config and scripts/run.sh
- gate os::fs_type module/function/tests to Linux to avoid non-Linux dead_code warnings
* fix(utils): simplify fs_type linux gating
- keep fs_type module-level linux cfg in os::mod
- remove redundant linux cfg on get_fs_type and test module
* chore(deps): bump s3s git revision
- update workspace s3s dependency to rev 507e1312b211c3ddc214b03875d6fabd15d22ed5
- refresh Cargo.lock source entry for s3s
* chore(dev): allow mysql_async git source and env overrides
- allow mysql_async git source in deny.toml allow-git list
- make scripts/run.sh core env vars overrideable via existing shell env
* fix(utils): import get_fs_type in fs_type tests
- add explicit super::get_fs_type import in fs_type test module
- fix Linux E0425 unresolved function errors in unit tests
* chore(dev): tune run script observability defaults
- make profiling export env overrideable in scripts/run.sh
- set RUSTFS_OBS_SAMPLE_RATIO default from 2.0 to 1.0
- update allow-git review window comments in deny.toml
* test(obs): stabilize profiling env alias tests
2026-05-20 15:03:07 +00:00
安正超
11054263c1
fix(utils): map common Linux filesystem magic values ( #3023 )
2026-05-20 04:00:32 +00:00
安正超
cde53ca6ad
fix(utils): handle IPv6 zones and hex ranges ( #3019 )
...
* fix(utils): handle low-risk TODO range parsing
* fix(utils): address scoped IPv6 and range review
2026-05-20 03:56:14 +00:00
Henry Guo
94da6e34cb
fix(notify): parse IPv6 hosts without ports ( #3000 )
...
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
2026-05-19 02:40:21 +00:00
Henry Guo
17eff5a97b
fix(tls): ignore Kubernetes secret projection dirs ( #2938 )
2026-05-13 03:45:42 +00:00
escapecode
96b293bf8a
feat(sftp): add SFTPv3 protocol support ( #2875 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-10 03:48:42 +00:00
安正超
4728abcff1
fix(security): document unsafe and TLS overrides ( #2835 )
2026-05-06 15:09:02 +00:00
cxymds
70be0804ee
fix: 2827 lifecycle days next midnight ( #2833 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-06 15:00:53 +00:00
唐小鸭
e16f1ae639
fix(window): Compatible with Windows Path ( #2691 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-04-28 14:36:59 +00:00
安正超
a05687b900
test(utils): cover disk-check env alias precedence ( #2684 )
2026-04-26 07:41:50 +00:00
houseme
1e9c75a201
feat(ecstore): enforce local disk topology guardrails and expose device ids ( #2679 )
2026-04-25 06:02:02 +00:00
安正超
f833cd9cbe
fix(metrics): keep S3 op counts when chains are disabled ( #2675 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-04-25 01:24:53 +00:00
安正超
ce291ab610
test(utils): cover scanner env alias mapping ( #2574 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-04-17 13:24:16 +00:00
houseme
f77ccd5b23
chore: move mcp crate to standalone repository ( #2578 )
2026-04-17 12:42:26 +00:00
houseme
6ce24f3b63
feat(lifecycle): improve ILM compatibility and scanner runtime config ( #2534 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
Co-authored-by: cxymds <Cxymds@qq.com >
2026-04-16 10:28:03 +00:00
Tunglies
49366ee200
chore(lint): clippy rules redundant_clone ( #2554 )
2026-04-15 13:54:07 +00:00
houseme
979626c370
refactor(utils): decouple config deps and move sys helpers ( #2520 )
...
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
2026-04-13 21:05:03 +08:00
Henry Guo
0f7e7f35e9
test(utils): make retry timer assertions deterministic ( #2468 )
2026-04-11 12:02:38 +08:00
安正超
939a69f9c2
test(s3): complete snowball auto-extract compatibility ( #2324 )
2026-03-29 19:19:45 +08:00
安正超
f98664ea4a
test(s3): complete snowball auto-extract coverage ( #2313 )
2026-03-28 22:56:42 +08:00
heihutu
3c28f0a0ba
feat(metrics): migrate system monitoring from rustfs-obs to rustfs-metrics ( #2242 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-03-20 18:52:33 +08:00
weisd
b9b7d86ae4
feat: improve legacy metadata and admin compatibility ( #2202 )
2026-03-18 21:05:09 +08:00
安正超
83fb530609
refactor(config): normalize scanner env naming ( #2129 )
2026-03-11 22:41:41 +08:00
安正超
7d7e0b2654
fix(utils): harden panic-prone paths ( #2113 )
...
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 >
2026-03-11 15:16:03 +08:00
安正超
01a75b5f58
Add env variable alias compatibility warnings ( #2044 )
2026-03-02 15:34:19 +08:00
houseme
d17d2083d4
feat(targets): enhance webhook TLS support with custom CA and skip-verify ( #1994 )
...
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com >
Co-authored-by: houseme <4829346+houseme@users.noreply.github.com >
Co-authored-by: heihutu <heihutu@gmail.com >
2026-02-27 21:24:49 +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
唐小鸭
4413878739
fix(compress): downgrade non-compressible log level and expand excluded file types ( #1780 )
2026-02-16 03:36:22 +08:00
LeonWang0735
f4e9ef2edc
fix(replication): avoid re-replication loop in Active-Active replication ( #1751 )
...
Co-authored-by: loverustfs <hello@rustfs.com >
2026-02-09 14:11:30 +08:00
houseme
0b870d6301
build(deps): bump the dependencies group with 19 updates ( #1745 )
2026-02-07 12:22:14 +08:00
likewu
087f58b7c8
fix(lifecycle): lifecycle fixes ( #1625 )
...
Signed-off-by: likewu <likewu@126.com >
Co-authored-by: loverustfs <hello@rustfs.com >
2026-01-31 19:14:47 +08:00
houseme
90ed75a3dc
refactor(utils/os): Optimize Windows OS utilities and add safety comments ( #1671 )
...
Co-authored-by: weisd <weishidavip@163.com >
2026-01-30 16:13:42 +08:00
houseme
2ee81496b0
fix: deduplicate disks in capacity calculation to prevent inflation ( #1656 )
2026-01-30 00:03:21 +08:00
LeonWang0735
022e3dfc21
fix:s3 tests fix ( #1652 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-01-29 19:35:03 +08:00
heihutu
74759b6e99
fix: missing object.key in S3 event notifications for multipart uploads #1609 ( #1624 )
...
Co-authored-by: houseme <housemecn@gmail.com >
2026-01-27 13:32:56 +08:00
houseme
2108c4ad28
fix: remove plaintext credential logging ( #1619 )
2026-01-27 01:47:39 +08:00
houseme
d251b9fb35
fix: unify path handling to use S3-standard forward slashes on all platforms ( #1555 )
...
Signed-off-by: houseme <housemecn@gmail.com >
Signed-off-by: 安正超 <anzhengchao@gmail.com >
Co-authored-by: heihutu <30542132+heihutu@users.noreply.github.com >
Co-authored-by: LeonWang0735 <wlywly0735@126.com >
Co-authored-by: loverustfs <hello@rustfs.com >
Co-authored-by: 安正超 <anzhengchao@gmail.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-01-26 18:49:21 +08:00
安正超
4890fb25c1
fix: listobjects v2 pagination ( #1607 )
2026-01-25 09:30:08 +08:00
LeonWang0735
3b5f7fb3ff
Fix/correctly handle object lock ( #1556 )
...
Signed-off-by: 安正超 <anzhengchao@gmail.com >
Co-authored-by: loverustfs <hello@rustfs.com >
Co-authored-by: 安正超 <anzhengchao@gmail.com >
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-01-22 00:15:21 +08:00
houseme
a9f499282c
fix: Increase lock acquire timeout for network storage reliability ( #1548 )
2026-01-19 01:14:36 +08:00
houseme
109ca7a100
perf(utils): optimize User-Agent generation and platform detection ( #1504 )
2026-01-14 18:08:02 +08:00
Jan S
68c5c0b834
Use POSIX statvfs, since statfs is not designed to be portable ( #1495 )
2026-01-14 16:03:32 +08:00
houseme
760cb1d734
Fix Windows Path Separator Handling in rustfs_utils ( #1464 )
...
Co-authored-by: reatang <tangtang1251@qq.com >
2026-01-11 19:53:51 +08:00
houseme
04f441361e
replace winapi to windows crate ( #1455 )
2026-01-10 02:15:08 +08:00