weisd and GitHub
359c9d2d26
Enhance Object Version Management and Replication Status Handling ( #1413 )
2026-01-07 10:44:35 +08:00
houseme and GitHub
8d7cd4cb1b
chore: upgrade dependencies and migrate to aws-lc-rs ( #1333 )
2026-01-02 00:02:34 +08:00
80cfb4feab
Add Disk Timeout and Health Check Functionality ( #1196 )
...
Signed-off-by: weisd <[email protected] >
Co-authored-by: loverustfs <[email protected] >
2025-12-22 17:15:19 +08:00
fba201df3d
fix: harden data usage aggregation and cache handling ( #1102 )
...
Signed-off-by: junxiang Mu <[email protected] >
Co-authored-by: loverustfs <[email protected] >
2025-12-11 09:55:25 +08:00
978845b555
fix(lifecycle): Fix ObjectInfo fields and mod_time error handling ( #1088 )
...
Co-authored-by: loverustfs <[email protected] >
2025-12-11 07:17:35 +08:00
weisd and GitHub
030d3c9426
fix filemeta nil versionid ( #1002 )
2025-12-05 20:30:08 +08:00
houseme and GitHub
5b0a3a0764
upgrade crate version and improve heal config ( #963 )
2025-12-03 18:49:11 +08:00
a8b7b28fd0
Fix Admin Heal API and Add Pagination Support for Large Buckets ( #933 )
...
Co-authored-by: Copilot <[email protected] >
Co-authored-by: loverustfs <[email protected] >
Co-authored-by: houseme <[email protected] >
2025-12-03 18:10:46 +08:00
277d80de13
Fix: Implement priority-based heal queue with comprehensive diagnostic logging ( #884 )
...
* Initial plan
* Implement priority-based heal queue with deduplication
Co-authored-by: houseme <[email protected] >
* Apply cargo fmt formatting fixes
Co-authored-by: houseme <[email protected] >
* Add queue monitoring, better error handling, and adaptive processing
- Add priority-based queue statistics tracking
- Implement queue capacity warnings (>80% full)
- Process multiple tasks per cycle when capacity allows
- Add proper error logging for failed heal request submissions
- Add Hash trait to HealPriority for HashMap support
- Improve observability with detailed queue status logs
Co-authored-by: houseme <[email protected] >
* Add comprehensive diagnostic logging to heal flow
- Add detailed logging for shard availability checks during reads
- Log successful heal request submissions
- Add detailed logging in heal_object for disk checking
- Log each disk's heal decision with reason and endpoint
- Add logging for heal writing and renaming phases
- Improve variable naming (nil_count -> available_shards)
- Add success confirmation messages for renamed healed data
These logs will help diagnose where the heal flow is failing.
Co-authored-by: houseme <[email protected] >
* fix
* feat(heal): enhance robustness, safety, and observability of heal process
- **Logging & Observability**:
- Upgrade critical heal logs from [info](/crates/e2e_test/src/reliant/node_interact_test.rs:196:0-213:1) to `warn` for better visibility.
- Implement structured logging with `tracing` fields for machine readability.
- Add `#[tracing::instrument]` to [HealTask](c/crates/ahm/src/heal/task.rs:182:0-205:1) and [SetDisks](/crates/ecstore/src/set_disk.rs:120:0-131:1) methods for automatic context propagation.
- **Robustness**:
- Add exponential backoff retry (3 attempts) for acquiring write locks in [heal_object](/crates/ahm/src/heal/storage.rs:438:4-460:5) to handle contention.
- Handle [rename_data](/crates/ecstore/src/set_disk.rs:392:4-516:5) failures gracefully by preserving temporary files instead of forcing deletion, preventing potential data loss.
- **Data Safety**:
- Fix [object_exists](/crates/ahm/src/heal/storage.rs:395:4-412:5) to propagate IO errors instead of treating them as "object not found".
- Update [ErasureSetHealer](/crates/ahm/src/heal/erasure_healer.rs:28:0-33:1) to mark objects as failed rather than skipped when existence checks error, ensuring they are tracked for retry.
* fix
* fmt
* improve code for heal_object
* fix
* fix
* fix
---------
Co-authored-by: copilot-swe-agent[bot] <[email protected] >
Co-authored-by: houseme <[email protected] >
Co-authored-by: houseme <[email protected] >
2025-11-20 00:36:25 +08:00
55d44622ed
list object include deleted support ( #882 )
...
Co-authored-by: houseme <[email protected] >
2025-11-18 21:51:10 +08:00
weisd and GitHub
85bc0ce2d5
fix: filemeta version handling and delete operations ( #879 )
...
* fix filemeta version
* fix clippy
* fix delete version
* fix clippy/test
2025-11-18 09:24:22 +08:00
houseme and GitHub
38f26b7c94
improve import,crate version,and copyright ( #790 )
2025-11-05 09:10:06 +08:00
eb7eb9c5a1
fix: resolve logic errors in ahm heal module ( #788 )
...
* fix: resolve logic errors in ahm heal module
- Fix response publishing logic in HealChannelProcessor to properly handle errors
- Fix negative index handling in DiskStatusChange event to fail fast instead of silently converting to 0
- Enhance timeout control in heal_erasure_set Step 3 loop to immediately respond to cancellation/timeout
- Add proper error propagation for task cancellation and timeout in bucket healing loop
* fix: stabilize performance impact measurement test
- Increase measurement count from 3 to 5 runs for better stability
- Increase workload from 5000 to 10000 operations for more accurate timing
- Use median of 5 measurements instead of single measurement
- Ensure with_scanner duration is at least baseline to avoid negative overhead
- Increase wait time for scanner state stabilization
* wip
* Update crates/ahm/src/heal/channel.rs
Co-authored-by: Copilot <[email protected] >
* refactor: remove redundant ok_or_else + expect in event.rs
Replace redundant ok_or_else() + expect() pattern with
unwrap_or_else() + panic!() to avoid creating unnecessary Error
type when the value will panic anyway. This also defers error
message formatting until the error actually occurs.
* Update crates/ahm/src/heal/task.rs
Co-authored-by: Copilot <[email protected] >
* fix(ahm): fix logic errors and add unit tests
- Fix panic in HealEvent::to_heal_request for invalid indices
- Replace unwrap() calls with proper error handling in resume.rs
- Fix race conditions and timeout calculation in task.rs
- Fix semaphore acquisition error handling in erasure_healer.rs
- Improve error message for large objects in storage.rs
- Add comprehensive unit tests for progress, event, and channel modules
- Fix clippy warning: move test module to end of file in heal_channel.rs
* style: apply cargo fmt formatting
* refactor(ahm): address copilot review suggestions
- Add comment to check_control_flags explaining why return value is discarded
- Fix hardcoded median index in performance test using constant and dynamic calculation
---------
Co-authored-by: Copilot <[email protected] >
2025-11-05 08:15:23 +08:00
houseme and GitHub
d934e3905b
Refactor telemetry initialization for non-production environments ( #789 )
...
* add dep `scopeguard`
* improve for tracing
* fix
* fix
* improve code for import
* add logger trace id
* fix
* fix
* fix
* fix
* fix
2025-11-05 00:55:08 +08:00
325ff62684
Issue 762 ( #763 )
...
* Add InvalidRangeSpec error
* Add EntityTooSmall to from_u32
* Add InvalidRangeSpec to from_u32
* Map InvalidRangeSpec to correct S3ErrorCode
* Return Error::InvalidRangeSpec
* Use auto implementation
---------
Co-authored-by: Niklas Mollenhauer <[email protected] >
2025-10-31 17:20:18 +08:00
likewu and GitHub
2aca1f77af
Fix/ilm ( #721 )
...
* fix tip remote tier error
* fix transitioned_object
* fix filemeta
* add GCS R2
* add aliyun tencent huaweicloud azure gcs r2 backend tier
* fix signer
* change azure to s3
Co-authored-by: houseme <[email protected] >
Co-authored-by: loverustfs <[email protected] >
2025-10-27 20:23:50 +08:00
cd1e244c68
Refactor: Introduce content checksums and improve multipart/object metadata handling ( #671 )
...
* feat: adapt to s3s typed etag support
* refactor: move replication struct to rustfs_filemeta, fix filemeta transition bug
* add head_object checksum, filter object metadata output
* fix multipart checksum
* fix multipart checksum
* add content md5,sha256 check
* fix test
* fix cargo
---------
Co-authored-by: overtrue <[email protected] >
2025-10-20 23:46:13 +08:00
安正超 and GitHub
30e7f00b02
fix: update ahm integration test fixture ( #659 )
2025-10-17 09:13:56 +08:00
0e680eae31
fix typos and bump the dependencies group with 9 updates ( #614 )
...
* fix typos
* build(deps): bump the dependencies group with 9 updates (#613 )
Bumps the dependencies group with 9 updates:
| Package | From | To |
| --- | --- | --- |
| [axum](https://github.com/tokio-rs/axum ) | `0.8.4` | `0.8.6` |
| [axum-extra](https://github.com/tokio-rs/axum ) | `0.10.1` | `0.10.3` |
| [regex](https://github.com/rust-lang/regex ) | `1.11.2` | `1.11.3` |
| [serde](https://github.com/serde-rs/serde ) | `1.0.226` | `1.0.228` |
| [shadow-rs](https://github.com/baoyachi/shadow-rs ) | `1.3.0` | `1.4.0` |
| [sysinfo](https://github.com/GuillaumeGomez/sysinfo ) | `0.37.0` | `0.37.1` |
| [thiserror](https://github.com/dtolnay/thiserror ) | `2.0.16` | `2.0.17` |
| [tokio-rustls](https://github.com/rustls/tokio-rustls ) | `0.26.3` | `0.26.4` |
| [zeroize](https://github.com/RustCrypto/utils ) | `1.8.1` | `1.8.2` |
Updates `axum` from 0.8.4 to 0.8.6
- [Release notes](https://github.com/tokio-rs/axum/releases )
- [Changelog](https://github.com/tokio-rs/axum/blob/main/CHANGELOG.md )
- [Commits](https://github.com/tokio-rs/axum/compare/axum-v0.8.4...axum-v0.8.6 )
Updates `axum-extra` from 0.10.1 to 0.10.3
- [Release notes](https://github.com/tokio-rs/axum/releases )
- [Changelog](https://github.com/tokio-rs/axum/blob/main/CHANGELOG.md )
- [Commits](https://github.com/tokio-rs/axum/compare/axum-extra-v0.10.1...axum-extra-v0.10.3 )
Updates `regex` from 1.11.2 to 1.11.3
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.11.2...1.11.3 )
Updates `serde` from 1.0.226 to 1.0.228
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.226...v1.0.228 )
Updates `shadow-rs` from 1.3.0 to 1.4.0
- [Release notes](https://github.com/baoyachi/shadow-rs/releases )
- [Commits](https://github.com/baoyachi/shadow-rs/compare/1.3.0...v1.4.0 )
Updates `sysinfo` from 0.37.0 to 0.37.1
- [Changelog](https://github.com/GuillaumeGomez/sysinfo/blob/master/CHANGELOG.md )
- [Commits](https://github.com/GuillaumeGomez/sysinfo/compare/v0.37.0...v0.37.1 )
Updates `thiserror` from 2.0.16 to 2.0.17
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/2.0.16...2.0.17 )
Updates `tokio-rustls` from 0.26.3 to 0.26.4
- [Release notes](https://github.com/rustls/tokio-rustls/releases )
- [Commits](https://github.com/rustls/tokio-rustls/compare/v/0.26.3...v/0.26.4 )
Updates `zeroize` from 1.8.1 to 1.8.2
- [Commits](https://github.com/RustCrypto/utils/compare/zeroize-v1.8.1...zeroize-v1.8.2 )
---
updated-dependencies:
- dependency-name: axum
dependency-version: 0.8.6
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dependencies
- dependency-name: axum-extra
dependency-version: 0.10.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dependencies
- dependency-name: regex
dependency-version: 1.11.3
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dependencies
- dependency-name: serde
dependency-version: 1.0.228
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dependencies
- dependency-name: shadow-rs
dependency-version: 1.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: dependencies
- dependency-name: sysinfo
dependency-version: 0.37.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dependencies
- dependency-name: thiserror
dependency-version: 2.0.17
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dependencies
- dependency-name: tokio-rustls
dependency-version: 0.26.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dependencies
- dependency-name: zeroize
dependency-version: 1.8.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: dependencies
...
Signed-off-by: dependabot[bot] <[email protected] >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---------
Signed-off-by: dependabot[bot] <[email protected] >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-02 23:29:18 +08:00
guojidan and GitHub
be66cf8bd3
Improve lock ( #596 )
...
* improve lock
Signed-off-by: Mu junxiang <[email protected] >
* feat(tests): add wait_for_object_absence helper and improve lifecycle test reliability
Signed-off-by: Mu junxiang <[email protected] >
* chore: remove dirty docs
Signed-off-by: Mu junxiang <[email protected] >
---------
Signed-off-by: Mu junxiang <[email protected] >
2025-09-27 17:57:56 -07:00
weisd and GitHub
90f21a9102
refactor: Reimplement bucket replication system with enhanced architecture ( #590 )
...
* feat:refactor replication
* use aws sdk for replication client
* refactor/replication
* merge main
* fix lifecycle test
2025-09-26 14:27:53 +08:00
houseme and GitHub
9b7f4d477a
Fix Tokio Runtime Initialization: Remove Private API Usage and Ensure IO Enabled ( #587 )
...
* fix: remove code
* improve code for tokio runtime config
* improve code for main
* fix: add tokio enable_all
* upgrade version
* improve for Cargo.toml
2025-09-24 22:23:31 +08:00
guojidan and GitHub
12ecb36c6d
Fix collect ( #586 )
...
* fix: fix datausageinfo
Signed-off-by: junxiang Mu <[email protected] >
* feat(data-usage): implement local disk snapshot aggregation for data usage statistics
Signed-off-by: junxiang Mu <[email protected] >
* feat(scanner): improve data usage collection with local scan aggregation
Signed-off-by: junxiang Mu <[email protected] >
* refactor: improve object existence check and code style
Signed-off-by: junxiang Mu <[email protected] >
---------
Signed-off-by: junxiang Mu <[email protected] >
2025-09-24 02:48:23 -07:00
weisd and GitHub
ae7e86d7ef
refactor: simplify initialization flow and modernize string formatting ( #548 )
2025-09-16 15:44:50 +08:00
houseme and GitHub
0c3079ae5e
remove deps ( #529 )
2025-09-13 21:06:40 +08:00
29c004d935
feat: enhance console separation with enterprise-grade security, monitoring, and advanced tower-http integration ( #513 )
...
* Initial plan
* feat: implement console service separation from endpoint
Co-authored-by: houseme <[email protected] >
* feat: add console separation documentation and tests
Co-authored-by: houseme <[email protected] >
* feat: enhance console separation with configurable CORS and improved Docker support
Co-authored-by: houseme <[email protected] >
* feat: implement enhanced console separation with security hardening and monitoring
Co-authored-by: houseme <[email protected] >
* refactor: implement console TLS following endpoint logic and improve configuration
Co-authored-by: houseme <[email protected] >
* add tower-http feature "timeout|limit"
* add dependencies crates `axum-server`
* refactor: reconstruct console server with enhanced tower-http features and environment variables
Co-authored-by: houseme <[email protected] >
* upgrade dep
* improve code for dns and console port `:9001`
* improve code
* fix
* docs: comprehensive improvement of console separation documentation and Docker deployment standards
Co-authored-by: houseme <[email protected] >
* fmt
* add logs
* improve code for Config handler
* remove logs
* fix
---------
Co-authored-by: copilot-swe-agent[bot] <[email protected] >
Co-authored-by: houseme <[email protected] >
Co-authored-by: houseme <[email protected] >
2025-09-13 14:48:14 +08:00
guojidan and GitHub
d4beb1cc0b
Fix lock ( #510 )
...
* Refactor: reimplement lock
Signed-off-by: junxiang Mu <[email protected] >
* Fix: fix test case failed
Signed-off-by: junxiang Mu <[email protected] >
* Improve: lock pref
Signed-off-by: junxiang Mu <[email protected] >
* fix(lock): Fix resource cleanup issue when batch lock acquisition fails
Ensure that the locks already acquired are properly released when batch lock acquisition fails to avoid memory leaks
Improve the lock protection mechanism to prevent double release issues
Add complete Apache license declarations to all files
Signed-off-by: junxiang Mu <[email protected] >
---------
Signed-off-by: junxiang Mu <[email protected] >
2025-09-11 12:10:35 +08:00
安正超 and GitHub
9c97524c3b
feat: consolidate AI rules into unified AGENTS.md ( #501 )
...
- Merge all AI rules from .rules.md, .cursorrules, and CLAUDE.md into AGENTS.md
- Add competitor keyword prohibition rules (minio, ceph, swift, etc.)
- Simplify rules by removing overly detailed code examples
- Integrate new development principles as highest priority
- Remove old tool-specific rule files
- Fix clippy warnings for format string improvements
2025-09-09 21:36:34 +08:00
guojidan and GitHub
14a8802ce7
Fix: fix collect usage data ( #500 )
...
Signed-off-by: junxiang Mu <[email protected] >
2025-09-09 18:39:51 +08:00
9d5ed1acac
Feature/scanner performance optimization ( #498 )
...
* Refactor: reimplement scanner
Signed-off-by: RustFS Developer <[email protected] >
* comment lock
Signed-off-by: junxiang Mu <[email protected] >
* remove dirty file
Signed-off-by: junxiang Mu <[email protected] >
* Fix: fix rebase
* fix(scanner): Improve error handling and logging
Signed-off-by: junxiang Mu <[email protected] >
---------
Signed-off-by: RustFS Developer <[email protected] >
Signed-off-by: junxiang Mu <[email protected] >
Co-authored-by: RustFS Developer <[email protected] >
2025-09-08 18:35:45 +08:00
c9d26c6e88
Fix/delete version ( #484 )
...
* fix:delete_version
* fix:test_lifecycle_expiry_basic
---------
Co-authored-by: likewu <[email protected] >
2025-09-03 15:12:58 +08:00
likewu and GitHub
087df484a3
Fix/ilm ( #478 )
2025-09-02 18:18:26 +08:00
7462be983a
Feature up/ilm ( #470 )
...
* fix delete-marker expiration. add api_restore.
* time retry object upload
* lock file
* make fmt
* restore object
* serde-rs-xml -> quick-xml
* scanner_item prefix object_name
* object_path
* object_name
* fi version_purge_status
* old_dir None
Co-authored-by: houseme <[email protected] >
2025-09-01 16:11:28 +08:00
houseme and GitHub
fd2aab2bd9
fix:revet #443 #446 ( #452 )
...
* fix: revet #443 #446
* fix
2025-08-23 17:30:06 +08:00
loverustfs and GitHub
46bd75c0f8
ahm(scanner): throttle scanning, skip recently-modified objects, and … ( #443 )
...
* ahm(scanner): throttle scanning, skip recently-modified objects, and gate missing-object heals to deep mode; adjust conservative defaults
Signed-off-by: loverustfs <[email protected] >
* ecstore: enable virtual-host AUTO heuristics and URL building; signer: fix SigV2 canonical resource for vhost; add unit tests
* ecstore: AUTO virtual-host style URL selection; signer: SigV2 canonical resource fixes for vhost; tests added.\nahm: fix clippy drop_non_drop; integration tests robust to existing bucket; ignore flaky lifecycle test.\nMakefile: test target falls back to cargo test when nextest missing.\npre-commit: all checks green.
---------
Signed-off-by: loverustfs <[email protected] >
2025-08-22 16:03:29 +08:00
junxiang Mu
24e3d3a2ce
refactor(ecstore): Optimize memory usage for object integrity verification
...
Change the object integrity verification from reading all data to streaming processing to avoid memory overflow caused by large objects.
Modify the TLS key log check to use environment variables directly instead of configuration constants.
Add memory limits for object data reading in the AHM module.
Signed-off-by: junxiang Mu <[email protected] >
2025-08-10 21:24:15 +08:00
junxiang Mu
4811632751
Fix: fix scanner detect
...
Signed-off-by: junxiang Mu <[email protected] >
2025-08-09 21:06:17 +08:00
d987686c14
feat(lifecycle): Implement object lifecycle management functionality ( #358 )
...
* feat(lifecycle): Implement object lifecycle management functionality
Add a lifecycle module to automatically handle object expiration and transition during scanning
Modify the file metadata cache module to be publicly visible to support lifecycle operations
Adjust the scanning interval to a shorter time for testing lifecycle rules
Implement the parsing and execution logic for S3 lifecycle configurations
Add integration tests to verify the lifecycle expiration functionality
Update dependencies to support the new lifecycle features
Signed-off-by: junxiang Mu <[email protected] >
* fix cargo dependencies
Signed-off-by: junxiang Mu <[email protected] >
* fix fmt
Signed-off-by: junxiang Mu <[email protected] >
---------
Signed-off-by: junxiang Mu <[email protected] >
Co-authored-by: houseme <[email protected] >
2025-08-08 10:51:02 +08:00
e0c99bced4
chore: add tls log and removing unused crates ( #359 )
...
* chore: add tls log
* improve code for http
* improve code dependencies for `cargo.toml` and removing unused crates
* modify name
* improve code
* fix
* Update crates/config/src/constants/env.rs
Co-authored-by: Copilot <[email protected] >
* improve code
* fix
* add `is_enabled` and `is_disabled`
---------
Co-authored-by: Copilot <[email protected] >
2025-08-07 19:02:09 +08:00
junxiang Mu
1b88714d27
Fix: fix data integrity check
...
Signed-off-by: junxiang Mu <[email protected] >
2025-08-06 11:03:29 +08:00
houseme and GitHub
77bc9af109
Update Cargo.toml
2025-07-24 14:14:12 +08:00
junxiang Mu
b667927216
fix fmt
...
Signed-off-by: junxiang Mu <[email protected] >
2025-07-24 12:14:28 +08:00
junxiang Mu
29795fac51
fix Cargo.toml
...
Signed-off-by: junxiang Mu <[email protected] >
2025-07-24 12:14:28 +08:00
junxiang Mu
4fefd63a5b
rebase
...
Signed-off-by: junxiang Mu <[email protected] >
2025-07-24 12:14:05 +08:00
junxiang Mu
2a8c46874d
fix: auto heal when xl.meta lose
...
Signed-off-by: junxiang Mu <[email protected] >
2025-07-24 12:14:05 +08:00
junxiang Mu
b8b5511b68
fix: heal data part lose
...
Signed-off-by: junxiang Mu <[email protected] >
2025-07-24 12:14:05 +08:00
junxiang Mu
bdaee228db
fix(ahm): adjust test expectations for missing xl.meta recovery scenario
...
Signed-off-by: junxiang Mu <[email protected] >
2025-07-24 12:14:05 +08:00
junxiang Mu
69b0c828c9
fix: scanner add heal bucket
...
Signed-off-by: junxiang Mu <[email protected] >
2025-07-24 12:14:05 +08:00
junxiang Mu
2bfd1efb9b
Fix: fix add heal_manager into scanner when scanner start
...
Signed-off-by: junxiang Mu <[email protected] >
2025-07-24 12:14:05 +08:00
junxiang Mu
0854e6b921
Chore: rename init_heal_manager_with_channel
...
Signed-off-by: junxiang Mu <[email protected] >
2025-07-24 12:14:05 +08:00