安正超
22bcfc474e
perf(ecstore): use direct std writes for local disk ( #3069 )
...
* perf(ecstore): use direct std writes for local disk
* fix(ecstore): avoid blocking disk writes in local disk path
* fix(ecstore): use tokio async write in local disk path
* chore(ecstore): remove unused AsyncWriteExt import
* fix(ecstore): preserve write semantics and avoid bytes copy
* fix(ecstore): optimize write_all_internal buffer paths
* fix(ecstore): sync write path in local disk
* fix(ecstore): align sync flag docs and avoid ref copy
* chore(rust): format local write path
---------
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-23 15:22:49 +00:00
Henry Guo
a28cb34381
test(internode): cover RemoteDisk adapter routing ( #3070 )
...
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
2026-05-23 09:41:25 +00:00
LeonWang0735
cbcfe625ef
fix(replication): avoid skipping existing-object backfill for new targets ( #2992 )
...
* fix(replication): avoid skipping existing-object backfill for new targets
* optimize(replication): delete redundant line
---------
Co-authored-by: houseme <housemecn@gmail.com >
Co-authored-by: cxymds <Cxymds@qq.com >
2026-05-23 04:53:08 +00:00
安正超
02a7d3c228
fix: derive run script CORS console port ( #3068 )
2026-05-23 04:52:46 +00:00
Henry Guo
53b608c089
docs(internode): keep transport adapter OSS scoped ( #3067 )
...
docs(internode): keep transport adapter oss scoped
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
2026-05-23 13:00:36 +08:00
Henry Guo
2786a4734a
docs(internode): align transport adapter scope ( #3064 )
...
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
2026-05-22 16:27:27 +00:00
GatewayJ
c9f0f25f55
fix: bind run script to localhost ( #3063 )
2026-05-22 14:28:17 +00:00
houseme
20a4db7c9a
fix(tls): resolve RUSTFS_TLS_PATH startup regression ( #3059 )
...
* fix(tls): resolve RUSTFS_TLS_PATH startup regression
* fix(tls): adopt PR review follow-ups
2026-05-22 09:09:31 +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
weisd
69345fe059
fix(scanner): preserve background heal compatibility ( #3041 )
2026-05-22 14:38:35 +08:00
Henry Guo
b42766f1d3
feat(internode): define transport capabilities ( #3047 )
...
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-22 02:56:37 +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
ed2078e025
fix(ecstore): allow expired delete markers on locked buckets ( #3048 )
...
* fix: allow expired delete markers on locked buckets
* fix: reject zero-day del marker expiration
2026-05-22 01:39:53 +00:00
Henry Guo
2404bc1657
docs(internode): inventory transport data paths ( #3040 )
...
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
2026-05-21 15:40:39 +00:00
Henry Guo
0985f0b37b
feat(internode): label transport operation metrics ( #3045 )
...
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-21 15:20:39 +00:00
houseme
e69e32285b
fix(ecstore): harden multipart part metadata visibility ( #3042 )
...
* fix(ecstore): harden multipart part metadata visibility
* fix(ecstore): address PR3042 review follow-ups
2026-05-21 14:47:52 +00:00
Henry Guo
97858baf8e
docs(internode): analyze buffer lifecycle ( #3046 )
2026-05-21 22:52:39 +08:00
Henry Guo
69dcf9e6cb
fix(tooling): harden internode transport benchmark setup ( #3037 )
...
* refactor(config): centralize internode transport constants
* fix(bench): guard all ripgrep calls behind dry-run check
Move require_cmd rg and metrics collection inside the non-dry-run
path so that --dry-run works on hosts without rg installed.
* feat(tooling): cross-platform protoc setup for Linux and macOS
Make install-protoc.sh support Linux (x86_64, aarch64) alongside
macOS, and bump CI protoc from 29.3 to 33.1 to match the version
required by the gproto build script.
* fix(bench): record internode baseline error counts
* fix(skill): correct YAML frontmatter formatting for release-version-bump
* chore(ci): bump protoc version to 34.1
* fix(tooling): bump protoc 33.1 to 34.1 in install script, restore SKILL.md description
---------
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
2026-05-21 05:47:32 +00:00
houseme
503f89bf0e
chore(deps): bump aws sdk and config ( #3035 )
2026-05-21 01:47:34 +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
1.0.0-beta.4
2026-05-20 15:03:07 +00:00
houseme
b2dfdf85de
chore(release): prepare 1.0.0-beta.4 ( #3032 )
...
* chore(release): prepare 1.0.0-beta.4
* docs(skill): refine rustfs spec changelog rule
* docs(skill): optimize rustfs release bump workflow
2026-05-20 13:56:43 +00:00
houseme
375482a4b6
refactor: converge storage io hot paths ( #3029 )
...
* refactor(issue-633): clarify layered io control policies
* refactor(issue-633): consolidate timeout and deadlock layers
* refactor(issue-633): align storage backpressure metadata
* refactor(issue-633): unify storage backpressure transitions
* refactor(issue-633): simplify watermark transition API
* test(issue-633): add storage backpressure transition test
* refactor(issue-633): align storage pipe meta shape
* refactor(issue-633): enrich storage monitor metadata
* refactor(issue-633): finalize storage backpressure convergence
* refactor(issue-633): complete scheduler layer convergence
* refactor(issue-633): reduce concurrency facade config duplication
* refactor(issue-633): migrate storage callsites to final policy names
* chore(issue-633): apply final pre-commit normalization
* refactor(issue-633): unify timeout wrapper dynamic size path
* refactor(issue-633): make concurrency policies copyable
* refactor(issue-633): converge storage io hot paths
* fix(issue-633): honor storage timeout min bound
* fix(storage): avoid timeout calc panic on huge sizes
* refactor(storage): consolidate timeout checks and test attrs
* fix(storage): harden io scheduler core config mapping
* refactor(storage): eliminate patch-on-patch patterns and dead code
- Remove trivial accessor methods on ConcurrencyConfig that just return pub fields
- Remove dead BackpressureEvent/BackpressureEventType types from concurrency crate
- Fix io_schedule test using wrong constructor (from_core_config -> from_scheduler_config)
- Update manager.rs to use config fields directly instead of removed accessors
* fix: adopt review feedback for config guards
* test: remove needless struct update defaults
* fix: harden timeout policy and preserve api alias
2026-05-20 12:00:23 +00:00
Henry Guo
45b04316b9
refactor(ecstore): decouple transport construction from RemoteDisk ( #3027 )
...
Move build_internode_data_transport_from_env() out of RemoteDisk::new()
into new_disk(), so RemoteDisk depends only on the
Arc<dyn InternodeDataTransport> trait object. TCP/HTTP remains the
default backend; all data paths unchanged.
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
2026-05-20 11:55:08 +00:00
Henry Guo
19b69abe5c
feat(internode): harden p0 transport boundary and baseline tooling ( #3017 )
...
* feat(internode): p0 transport baseline and ci hardening
* fix(internode): avoid double wrapping transport errors
---------
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-20 11:06:26 +00:00
安正超
c684438625
fix(obs): add proxied PUT replication metrics ( #3020 )
...
fix(obs): add proxied put replication metrics
2026-05-20 05:30:57 +00:00
安正超
11054263c1
fix(utils): map common Linux filesystem magic values ( #3023 )
2026-05-20 04:00:32 +00:00
安正超
b530a9f0b2
fix(ecstore): remove stale bucket metadata parse TODO ( #3021 )
...
* fix(ecstore): remove stale bucket metadata parse TODO
* test: cover stored bucket target config parsing
2026-05-20 03:59:55 +00:00
安正超
dd35538e90
fix(ecstore): remove stale disk TODOs ( #3022 )
2026-05-20 03:59:34 +00:00
安正超
c727589161
fix(obs): remove stale replication metric TODOs ( #3024 )
2026-05-20 03:59:16 +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
e929814edc
feat(ecstore): add internode transport boundary and TCP baseline runner ( #3010 )
...
* docs: add internode data transport RFC
* feat: add internode operation metrics
* fix feedback
* fix(ci): fallback protoc token to github.token
* feat(ecstore): add internode transport boundary and baseline runner
* feat(internode): harden data transport baseline
* Revert "feat(internode): harden data transport baseline"
This reverts commit 5b8d6b8aa4 .
* fix(internode): address baseline review comments
* fix(ci): pin setup-protoc to stable release
* fix(ci): install protoc via apt on linux
* fix(ci): restore protoc install for macos and windows
---------
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-19 22:41:34 +00:00
安正超
a8a5f25af3
perf(ecstore): remove owned write sync regression ( #3018 )
2026-05-19 22:14:35 +00:00
安正超
54be3cab23
fix(heal): ignore missing response subscribers ( #3015 )
...
* fix(heal): ignore missing response subscribers
* fix(heal): ignore missing response subscribers
2026-05-19 15:34:22 +00:00
安正超
1c8fdfddf4
chore(ci): pin RustFS setup-protoc release ( #3016 )
...
* chore(ci): use RustFS setup-protoc fork
* chore(ci): pin RustFS setup-protoc release
2026-05-19 15:28:51 +00:00
houseme
73bde843d6
refactor(s3): consolidate semantic boundaries and remove s3-common ( #3012 )
...
* refactor(common): introduce rustfs-data-usage core crate
* refactor(concurrency): migrate workers crate into concurrency
* refactor(crypto): migrate appauth token APIs into crypto
* fix docs urls
* remove unused crate
* refactor(data-usage): switch consumers to rustfs-data-usage
* chore(fmt): apply cargo fmt and lockfile sync
* refactor(common): remove data_usage compatibility re-export
* refactor(capacity): move capacity_scope to object-capacity
* refactor(io-metrics): relocate internode metrics from common
* refactor(common): decouple scanner report from madmin
* chore(fmt): normalize import ordering after pre-commit
* refactor(s3): split s3 types and ops crates
* refactor(s3): centralize event version and safe parsing
* refactor(s3): add op-event compatibility guardrails
* refactor(s3): add runtime op-event mismatch observability
* refactor(s3): extract delete event mapping helper
* refactor(s3): extract put event mapping helper
* refactor(s3): consolidate remaining event semantic helpers
* refactor(s3): add op-event coverage checks and observability alerts
* refactor(s3-ops): consolidate op-event semantic mapping
* refactor(scanner): remove last_minute wrapper module
* refactor(scanner): consolidate duplicated data usage models
2026-05-19 12:50:25 +00:00
houseme
d6fc70eb12
feat(obs): expose key S3 usecase spans at info ( #3013 )
2026-05-19 11:00:51 +00:00
houseme
25c6bdf490
perf(filemeta): phase-1~3 rename_data metadata optimization ( #3011 )
...
* chore(perf): harden amd64 profiling benchmark flow
* fix(profiling): isolate bench buckets and map protobuf conflict
* perf: avoid blocking owned local writes
* style: format profile admin handler
* docs: clarify observability trace validation
* perf: reduce mkdir overhead on local writes
* perf: add rename_data meta microbenchmark
* perf(filemeta): fast-path data_dir decode in version meta
* perf(filemeta): collapse data-dir lookup into one scan
* perf(filemeta): reduce scan allocs and refresh meta bench
* perf(ecstore): skip mkdir path on read-only open
* perf(filemeta): single-pass unshared data-dir scan
* perf(filemeta): add two-key inline remove fast path
* perf(filemeta): compare remove-two keys by bytes first
* bench(ecstore): add remove_two-only micro benchmark
* bench(ecstore): stabilize rename_data meta benchmark timing
* bench(ecstore): align rename_data path with remove_two
* perf(filemeta): avoid uuid string alloc in remove_two
* perf(filemeta): add fast-path for empty inline data
* perf(filemeta): streamline add_version match branch
* perf(filemeta): fast-return remove_key on miss
* perf(filemeta): speed up add_version insertion lookup
* style(ecstore): normalize formatting in perf-tuning files
* refactor(filemeta): unify inline data removal paths
2026-05-19 10:20:24 +00:00
Henry Guo
f695870626
feat(internode): add transport observability ( #3007 )
...
* docs: add internode data transport RFC
* feat: add internode operation metrics
* fix feedback
* fix(ci): fallback protoc token to github.token
---------
Co-authored-by: Henry Guo <marshawcoco@users.noreply.github.com >
2026-05-19 07:16:05 +00:00
安正超
aa3f13c0d3
fix(ecstore): stop listing after reaching result limit ( #3001 )
...
* fix(ecstore): stop listing after reaching result limit
* fix(ecstore): ignore intentional list cancellation
* fix(ecstore): satisfy list cancellation clippy lint
* fix(ecstore): include entry before limit early return
* fix(ecstore): cancel on limit in gather_results
* fix(ecstore): sync timeout branch with reviewed patch
* fix(ecstore): satisfy cancellation clippy lint
---------
Co-authored-by: loverustfs <hello@rustfs.com >
2026-05-19 05:20:21 +00:00
houseme
c4248078d6
chore: update dependencies ( #2890 )
...
* chore: update dependencies
* build(deps): bump the dependencies group with 5 updates
* build(deps): bump the dependencies group with 6 updates (#2908 )
Signed-off-by: houseme <housemecn@gmail.com >
Co-authored-by: houseme <housemecn@gmail.com >
* fix(ecstore): narrow Windows URL drive path rewrite
* chore(deps): bump starshard to 1.2.0
* revert(ecstore): restore endpoint Windows path behavior
* up
* up
* up
* perf(notify): use cached snapshot mode for scans
* fix
* chore(deps): bump workspace dependency versions
* chore(deps): refresh pinned dependency references
* chore(ci): align profiling and decommission tooling updates
- enable tokio_unstable cfg in performance profiling build flags\n- bump Rust base image from 1.93 to 1.95 in source and decommission Dockerfiles\n- remove obsolete compose version key from docker-compose-simple.yml\n- add standard Apache-2.0 license header to docker-compose.decommission.yml
* chore(deps): bump the dependencies group across 1 directory with 7 updates (#2994 )
Bumps the dependencies group with 7 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [sysinfo](https://github.com/GuillaumeGomez/sysinfo ) | `0.39.1` | `0.39.2` |
| [dial9-tokio-telemetry](https://github.com/dial9-rs/dial9-tokio-telemetry ) | `0.3.9` | `0.3.10` |
| [opentelemetry](https://github.com/open-telemetry/opentelemetry-rust ) | `0.31.0` | `0.32.0` |
| [opentelemetry-otlp](https://github.com/open-telemetry/opentelemetry-rust ) | `0.31.1` | `0.32.0` |
| [opentelemetry_sdk](https://github.com/open-telemetry/opentelemetry-rust ) | `0.31.0` | `0.32.0` |
| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-rust ) | `0.31.0` | `0.32.0` |
| [opentelemetry-stdout](https://github.com/open-telemetry/opentelemetry-rust ) | `0.31.0` | `0.32.0` |
Updates `sysinfo` from 0.39.1 to 0.39.2
- [Changelog](https://github.com/GuillaumeGomez/sysinfo/blob/main/CHANGELOG.md )
- [Commits](https://github.com/GuillaumeGomez/sysinfo/compare/v0.39.1...v0.39.2 )
Updates `dial9-tokio-telemetry` from 0.3.9 to 0.3.10
- [Release notes](https://github.com/dial9-rs/dial9-tokio-telemetry/releases )
- [Changelog](https://github.com/dial9-rs/dial9/blob/main/CHANGELOG.md )
- [Commits](https://github.com/dial9-rs/dial9-tokio-telemetry/compare/dial9-tokio-telemetry-v0.3.9...dial9-tokio-telemetry-v0.3.10 )
Updates `opentelemetry` from 0.31.0 to 0.32.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-rust/blob/main/docs/release_0.32.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/opentelemetry-prometheus-0.31.0...opentelemetry-0.32.0 )
Updates `opentelemetry-otlp` from 0.31.1 to 0.32.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-rust/blob/main/docs/release_0.32.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/opentelemetry-otlp-0.31.1...opentelemetry-otlp-0.32.0 )
Updates `opentelemetry_sdk` from 0.31.0 to 0.32.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-rust/blob/main/docs/release_0.32.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/v0.31.0...opentelemetry_sdk-0.32.0 )
Updates `opentelemetry-semantic-conventions` from 0.31.0 to 0.32.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-rust/blob/main/docs/release_0.32.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/v0.31.0...opentelemetry-semantic-conventions-0.32.0 )
Updates `opentelemetry-stdout` from 0.31.0 to 0.32.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases )
- [Changelog](https://github.com/open-telemetry/opentelemetry-rust/blob/main/docs/release_0.32.md )
- [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/v0.31.0...opentelemetry-stdout-0.32.0 )
---
updated-dependencies:
- dependency-name: sysinfo
dependency-version: 0.39.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dependencies
- dependency-name: dial9-tokio-telemetry
dependency-version: 0.3.10
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dependencies
- dependency-name: opentelemetry
dependency-version: 0.32.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dependencies
- dependency-name: opentelemetry-otlp
dependency-version: 0.32.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dependencies
- dependency-name: opentelemetry_sdk
dependency-version: 0.32.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dependencies
- dependency-name: opentelemetry-semantic-conventions
dependency-version: 0.32.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dependencies
- dependency-name: opentelemetry-stdout
dependency-version: 0.32.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dependencies
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: houseme <housemecn@gmail.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: houseme <housemecn@gmail.com >
* chore(deps): bump workspace dependency versions
* chore(deps): refresh lockfile windows crate graph
* chore(bench): align snapshot mode labels with coverage
* chore(bench): clarify tested snapshot modes
* fix(review): address PR2890 Copilot comments
---------
Signed-off-by: houseme <housemecn@gmail.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-19 04:58:42 +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
安正超
a9e62dc2c2
perf: avoid blocking hop for owned disk writes ( #3004 )
...
* perf: avoid blocking hop for owned disk writes
* fix(ecstore): sync owned write path
2026-05-19 02:27:14 +00:00
yihong
ecb6704679
fix: make help color not right ( #3005 )
...
Signed-off-by: yihong0618 <zouzou0208@gmail.com >
2026-05-19 02:26:23 +00:00
安正超
e65aebba53
fix(ecstore): guard transition worker max ( #3003 )
...
* fix(ecstore): guard transition worker max
* test: clarify env mutation safety
* test(ecstore): document env mutation concurrency contract
2026-05-19 02:25:51 +00:00
weisd
a66337bd28
fix: keep scanner walk timeouts from offlining drives ( #2996 )
...
* fix: keep scanner walk timeouts from offlining drives
Scanner walk operations can time out on large or slow directory listings without proving the backing drive is faulty. Keep the timeout error local to the scan while preserving failure marking for ordinary disk operations.
Constraint: Scanner walk_dir can include listing work that exceeds the drive timeout under slow storage.
Rejected: Disable timeout failure marking globally | real stuck disk operations must still affect drive health
Confidence: high
Scope-risk: narrow
Directive: Do not route scanner/listing timeout back into drive offline state without reproducing issue #2651
Tested: cargo test -p rustfs-ecstore timeout
Tested: cargo fmt --all --check
Tested: cargo clippy --workspace --all-features --all-targets -- -D warnings
Tested: make pre-commit with en_US.UTF-8 locale
Related: https://github.com/rustfs/rustfs/issues/2651
* fix: keep remote scanner walks from offlining drives
Remote walk_dir uses a streaming request that can hit total or stall timeouts during large scans without proving the remote drive is faulty. Route that scanner path through an explicit ignore action while preserving failure marking for ordinary remote operations.
Also treat Duration::ZERO as no operation timeout for remote health tracking, matching the existing local disk wrapper contract while still marking network-like errors on default paths.
Constraint: Scanner walk_dir streams can be slow because of directory size or consumer backpressure.
Rejected: Disable remote timeout failure marking globally | normal remote disk operations still need to evict failed connections and update drive health
Confidence: high
Scope-risk: narrow
Directive: Do not reintroduce remote scanner timeout failure marking without reproducing issue #2651 against remote disks.
Tested: cargo test -p rustfs-ecstore execute_with_timeout
Tested: cargo test -p rustfs-ecstore timeout
Tested: cargo fmt --all --check
Tested: cargo clippy --workspace --all-features --all-targets -- -D warnings
Tested: make pre-commit with en_US.UTF-8 locale
Related: https://github.com/rustfs/rustfs/issues/2651
* test: prove scanner walk backpressure keeps drives online
Add a local scanner walk regression test where the output writer never makes progress. The test confirms the walk timeout returns without marking the drive faulty, covering a stall source that is not caused by object count or network transfer speed.
Constraint: Scanner walk can block on downstream writer backpressure as well as disk or network IO.\nConfidence: high\nScope-risk: narrow\nTested: cargo test -p rustfs-ecstore walk_dir_writer_backpressure_timeout_does_not_mark_drive_failure\nTested: cargo test -p rustfs-ecstore timeout\nTested: cargo fmt --all --check\nTested: cargo clippy --workspace --all-features --all-targets -- -D warnings\nTested: make pre-commit
---------
Co-authored-by: houseme <housemecn@gmail.com >
2026-05-18 15:04:05 +00:00
houseme
bd1e57293f
fix: harden lifecycle transition compensation and regression coverage ( #2995 )
...
* fix(ecstore): honor transition worker configuration
* fix(ecstore): add transition queue backpressure metrics
* fix(ecstore): schedule transition compensation on enqueue pressure
* fix(ecstore): log transition compensation scheduling
* test(rustfs): add transition compensation fault-injection coverage
* test(rustfs): cover delete after transition compensation
* test(scanner): cover cleanup after transition compensation
* test(rustfs): extend compensation transition coverage
* test(scanner): cover backfill idempotency after compensation
* test(scanner): cover noncurrent expiry after compensation
* test(rustfs): cover versioned delete after compensation
* test(rustfs): cover delete marker lifecycle after compensation
* test(scanner): extend versioned lifecycle compensation coverage
* test(scanner): model versioned delete after compensation
* test(scanner): clarify modeled versioned delete helper
* refactor(ecstore): optimize transition enqueue hot path
* refactor(ecstore): centralize transition runtime constants
* style(ecstore): apply rustfmt for transition timeout helper
* fix(ilm): align queue-full metric semantics
* refactor(ecstore): unify immediate enqueue failure handling
* refactor(ecstore): reuse transition worker env constant
* ci(actions): update setup action inputs
2026-05-18 12:50:43 +00:00
wood
0e888cfef2
fix(ecstore): list_object_v2 error when scanning multipart folder ( #2946 )
...
* fix(ecstore): list_object_v2 error when scanning multipart directory with prefix
Signed-off-by: w0od <dingboning02@163.com >
* test(ecstore): cover prefix dir scan with multipart folder support
Signed-off-by: w0od <dingboning02@163.com >
* test(ecstore): harden test shape to improve regression detection
Signed-off-by: w0od <dingboning02@163.com >
* refactor(ecstore): move multipart dir filter into recursion to reduce I/O
Signed-off-by: w0od <dingboning02@163.com >
* test(ecstore): replace scan_dir test with walk_dir integration coverage
Signed-off-by: w0od <dingboning02@163.com >
* refactor(ecstore): remove unnecessary .clone() calls
Signed-off-by: w0od <dingboning02@163.com >
---------
Signed-off-by: w0od <dingboning02@163.com >
2026-05-18 11:01:20 +00:00
安正超
4c9fd789ea
docs: update security advisory skill lessons ( #2991 )
2026-05-18 12:34:27 +08:00
Henry Guo
17ae9f34c7
fix(notify): accept case-insensitive filter rule names ( #2990 )
2026-05-18 03:41:48 +00:00