From dcbffb084f9a85b7362f2c146e16f749d2c81179 Mon Sep 17 00:00:00 2001 From: houseme Date: Wed, 20 May 2026 23:03:07 +0800 Subject: [PATCH] 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 --- Cargo.lock | 192 ++++++++++++++++------------- Cargo.toml | 12 +- crates/audit/Cargo.toml | 1 - crates/config/src/constants/app.rs | 4 +- crates/e2e_test/Cargo.toml | 1 - crates/ecstore/Cargo.toml | 1 - crates/obs/src/config.rs | 43 +++++-- crates/rio/Cargo.toml | 1 - crates/scanner/Cargo.toml | 1 - crates/targets/Cargo.toml | 1 - crates/utils/src/os/fs_type.rs | 2 +- crates/utils/src/os/mod.rs | 1 + deny.toml | 13 +- rustfs/Cargo.toml | 2 +- scripts/run.sh | 15 ++- 15 files changed, 166 insertions(+), 124 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5f40a089c..a1801cc8a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -49,7 +49,7 @@ version = "0.6.0-rc.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b657e772794c6b04730ea897b66a058ccd866c16d1967da05eeeecec39043fe" dependencies = [ - "crypto-common 0.2.1", + "crypto-common 0.2.2", "inout 0.2.2", ] @@ -70,7 +70,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66bd29a732b644c0431c6140f370d097879203d79b80c94a6747ba0872adaef8" dependencies = [ - "cipher 0.5.1", + "cipher 0.5.2", "cpubits", "cpufeatures 0.3.0", ] @@ -97,8 +97,8 @@ checksum = "e22c0c90bbe8d4f77c3ca9ddabe41a1f8382d6fc1f7cea89459d0f320371f972" dependencies = [ "aead 0.6.0-rc.10", "aes 0.9.0", - "cipher 0.5.1", - "ctr 0.10.0", + "cipher 0.5.2", + "ctr 0.10.1", "ghash 0.6.0", "subtle", ] @@ -1086,9 +1086,9 @@ dependencies = [ [[package]] name = "aws-smithy-checksums" -version = "0.64.7" +version = "0.64.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10efbbcec1e044b81600e2fc562a391951d291152d95b482d5b7e7132299d762" +checksum = "e9e8e65f4f81fcccdeb6c3eca2af17ac21d421a1786a26a394aecf421d616d3a" dependencies = [ "aws-smithy-http", "aws-smithy-types", @@ -1164,10 +1164,12 @@ dependencies = [ [[package]] name = "aws-smithy-json" -version = "0.62.5" +version = "0.62.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9648b0bb82a2eedd844052c6ad2a1a822d1f8e3adee5fbf668366717e428856a" +checksum = "517089205f18ab4adc5a3e02888cb139bbbbb2e168eac9f396216925d1fbeaf5" dependencies = [ + "aws-smithy-runtime-api", + "aws-smithy-schema", "aws-smithy-types", ] @@ -1192,15 +1194,16 @@ dependencies = [ [[package]] name = "aws-smithy-runtime" -version = "1.11.1" +version = "1.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0504b1ab12debb5959e5165ee5fe97dd387e7aa7ea6a477bfd7635dfe769a4f5" +checksum = "b8e6f5caf6fea86f8c2206541ab5857cfcda9013426cdbe8fa0098b9e2d32182" dependencies = [ "aws-smithy-async", "aws-smithy-http", "aws-smithy-http-client", "aws-smithy-observability", "aws-smithy-runtime-api", + "aws-smithy-schema", "aws-smithy-types", "bytes", "fastrand", @@ -1217,9 +1220,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime-api" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b71a13df6ada0aafbf21a73bdfcdf9324cfa9df77d96b8446045be3cde61b42e" +checksum = "dc117c179ecf39a62a0a3f49f600e9ac26a7ad7dd172177999f83933af776c32" dependencies = [ "aws-smithy-async", "aws-smithy-runtime-api-macros", @@ -1245,10 +1248,21 @@ dependencies = [ ] [[package]] -name = "aws-smithy-types" -version = "1.4.7" +name = "aws-smithy-schema" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d73dbfbaa8e4bc57b9045137680b958d274823509a360abfd8e1d514d40c95c" +checksum = "7442cb268338f0eb8278140a107c046756aa01093d8ef5e99628d34ae09c94f5" +dependencies = [ + "aws-smithy-runtime-api", + "aws-smithy-types", + "http 1.4.0", +] + +[[package]] +name = "aws-smithy-types" +version = "1.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "056b66dbce2f81cc0c1e2b05bb402eb58f8a3530479d650efadd5bbae9a4050b" dependencies = [ "base64-simd", "bytes", @@ -1745,11 +1759,11 @@ dependencies = [ [[package]] name = "cbc" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98db6aeaef0eeef2c1e3ce9a27b739218825dae116076352ac3777076aa22225" +checksum = "ce2dc9ee5f88d11e0beb842c88b33c8a5cf0d1329c4b19494af42b07dbfe8896" dependencies = [ - "cipher 0.5.1", + "cipher 0.5.2", ] [[package]] @@ -1794,7 +1808,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" dependencies = [ "cfg-if", - "cipher 0.5.1", + "cipher 0.5.2", "cpufeatures 0.3.0", "rand_core 0.10.1", ] @@ -1807,7 +1821,7 @@ checksum = "1c9ed179664f12fd6f155f6dd632edf5f3806d48c228c67ff78366f2a0eb6b5e" dependencies = [ "aead 0.6.0-rc.10", "chacha20 0.10.0", - "cipher 0.5.1", + "cipher 0.5.2", "poly1305 0.9.0", ] @@ -1874,12 +1888,12 @@ dependencies = [ [[package]] name = "cipher" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e34d8227fe1ba289043aeb13792056ff80fd6de1a9f49137a5f499de8e8c78ea" +checksum = "e8cf2a2c93cd704877c0858356ed03480ff301ee950b43f1cbe4573b088bfa6c" dependencies = [ "block-buffer 0.12.0", - "crypto-common 0.2.1", + "crypto-common 0.2.2", "inout 0.2.2", ] @@ -2186,9 +2200,9 @@ dependencies = [ [[package]] name = "crc" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675" +checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d" dependencies = [ "crc-catalog", ] @@ -2201,13 +2215,11 @@ checksum = "217698eaf96b4a3f0bc4f3662aaa55bdf913cd54d7204591faa790070c6d0853" [[package]] name = "crc-fast" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd92aca2c6001b1bf5ba0ff84ee74ec8501b52bbef0cac80bf25a6c1d87a83d" +checksum = "e75b2483e97a5a7da73ac68a05b629f9c53cff58d8ed1c77866079e18b00dba5" dependencies = [ - "crc", "digest 0.10.7", - "rustversion", "spin 0.10.0", ] @@ -2372,9 +2384,9 @@ dependencies = [ [[package]] name = "crypto-common" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77727bb15fa921304124b128af125e7e3b968275d1b108b379190264f4423710" +checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453" dependencies = [ "getrandom 0.4.2", "hybrid-array", @@ -2424,11 +2436,11 @@ dependencies = [ [[package]] name = "ctr" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17469f8eb9bdbfad10f71f4cfddfd38b01143520c0e717d8796ccb4d44d44e42" +checksum = "baaca1c4b237092596f64d571e9db6ce4109c4ef9742e27590f1709594461f21" dependencies = [ - "cipher 0.5.1", + "cipher 0.5.2", ] [[package]] @@ -3605,7 +3617,7 @@ checksum = "f1dd6dbb5841937940781866fa1281a1ff7bd3bf827091440879f9994983d5c2" dependencies = [ "block-buffer 0.12.0", "const-oid 0.10.2", - "crypto-common 0.2.1", + "crypto-common 0.2.2", "ctutils", "zeroize", ] @@ -3696,7 +3708,6 @@ dependencies = [ "rmp-serde", "russh", "russh-sftp", - "rustfs-common", "rustfs-config", "rustfs-data-usage", "rustfs-ecstore", @@ -3873,7 +3884,7 @@ checksum = "cda94f31325c4275e9706adecbb6f0650dee2f904c915a98e3d81adaaaa757aa" dependencies = [ "base16ct 1.0.0", "crypto-bigint 0.7.3", - "crypto-common 0.2.1", + "crypto-common 0.2.2", "digest 0.11.3", "hkdf 0.13.0", "hybrid-array", @@ -4180,6 +4191,20 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "framehop" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09a5a3f0acb82df800ca3aa50c0d60d286c5d13d4cfc3114b3a9663f13b032fe" +dependencies = [ + "arrayvec", + "cfg-if", + "fallible-iterator 0.3.0", + "gimli 0.31.1", + "macho-unwind-info", + "pe-unwind-info 0.4.0", +] + [[package]] name = "framehop" version = "0.16.0" @@ -4191,7 +4216,7 @@ dependencies = [ "fallible-iterator 0.3.0", "gimli 0.33.0", "macho-unwind-info", - "pe-unwind-info", + "pe-unwind-info 0.6.0", ] [[package]] @@ -4408,6 +4433,16 @@ dependencies = [ "polyval 0.7.1", ] +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" +dependencies = [ + "fallible-iterator 0.3.0", + "stable_deref_trait", +] + [[package]] name = "gimli" version = "0.32.3" @@ -5685,7 +5720,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01737161ba802849cfd486b5bd209d38ba4943494c249a8126005170c7621edd" dependencies = [ - "crypto-common 0.2.1", + "crypto-common 0.2.2", "rand_core 0.10.1", ] @@ -5900,9 +5935,9 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libmimalloc-sys" -version = "0.1.47" +version = "0.1.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d1eacfa31c33ec25e873c136ba5669f00f9866d0688bea7be4d3f7e43067df6" +checksum = "2892ae4ea6fa2cb7acb0e236a6880d39523239cd9089de71d220910ccc806790" dependencies = [ "cc", "cty", @@ -5987,9 +6022,9 @@ checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" [[package]] name = "local-ip-address" -version = "0.6.12" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7b0187df4e614e42405b49511b82ff7a1774fbd9a816060ee465067847cac22" +checksum = "aa08fb2b1ec3ea84575e94b489d06d4ce0cbf052d12acd515838f50e3c3d63e3" dependencies = [ "libc", "neli", @@ -6320,9 +6355,9 @@ dependencies = [ [[package]] name = "mimalloc" -version = "0.1.50" +version = "0.1.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3627c4272df786b9260cabaa46aec1d59c93ede723d4c3ef646c503816b0640" +checksum = "ebca48a43116bc25f18a61360f1be98412f50cc218f5e52c823086b999a4a21a" dependencies = [ "libmimalloc-sys", ] @@ -6458,7 +6493,7 @@ dependencies = [ [[package]] name = "mysql_async" version = "0.36.1" -source = "git+https://github.com/blackbeam/mysql_async?rev=98d3d8067efdf97d3e93cdca7b9231753c904aca#98d3d8067efdf97d3e93cdca7b9231753c904aca" +source = "git+https://github.com/blackbeam/mysql_async?rev=2bad388283bc3ce48801fc2ffcd22445eb6f3d24#2bad388283bc3ce48801fc2ffcd22445eb6f3d24" dependencies = [ "bytes", "crossbeam-queue", @@ -6473,7 +6508,6 @@ dependencies = [ "percent-encoding", "rand 0.10.1", "rustls", - "rustls-pemfile", "serde", "socket2", "thiserror 2.0.18", @@ -6513,15 +6547,6 @@ dependencies = [ "uuid", ] -[[package]] -name = "names" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc" -dependencies = [ - "rand 0.8.6", -] - [[package]] name = "ndk-context" version = "0.1.1" @@ -7509,6 +7534,19 @@ dependencies = [ "hmac 0.13.0", ] +[[package]] +name = "pe-unwind-info" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "500fa4cdeacd98997c5865e3d0d1cb8fe7e9d7d75ecc775e07989a433a9a9a59" +dependencies = [ + "arrayvec", + "bitflags 2.11.1", + "thiserror 2.0.18", + "zerocopy", + "zerocopy-derive", +] + [[package]] name = "pe-unwind-info" version = "0.6.0" @@ -7727,7 +7765,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "279a91971a1d8eb1260a30938eae3be9cb67b472dffecb222fbbbe2fd2dc1453" dependencies = [ "aes 0.9.0", - "cbc 0.2.0", + "cbc 0.2.1", "der 0.8.0", "pbkdf2 0.13.0", "rand_core 0.10.1", @@ -7929,7 +7967,7 @@ dependencies = [ "backtrace", "cfg-if", "findshlibs", - "framehop", + "framehop 0.16.0", "inferno 0.11.21", "libc", "log", @@ -8008,7 +8046,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b52e6ee42db392378a95622b463c9740631171d1efce43fa445a569c1600cb6" dependencies = [ "crypto-bigint 0.7.3", - "crypto-common 0.2.1", + "crypto-common 0.2.2", "rand_core 0.10.1", "rustcrypto-ff", "subtle", @@ -8284,9 +8322,9 @@ dependencies = [ [[package]] name = "pulldown-cmark" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c3a14896dfa883796f1cb410461aef38810ea05f2b2c33c5aded3649095fdad" +checksum = "e9f068eba8e7071c5f9511831b44f32c740d5adf574e990f946ddb53db2f314e" dependencies = [ "bitflags 2.11.1", "memchr", @@ -8334,15 +8372,15 @@ dependencies = [ [[package]] name = "pyroscope" -version = "2.0.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc050356140f6c47dcaab95b6554ce12d461e4902c0a5baf4e888fcc86dcfaf4" +checksum = "942d4561e34d24ce01820f6e6bdf1dcff292b6f0c03245b0b4e5b4f89dddd85d" dependencies = [ + "framehop 0.13.3", "lazy_static", "libc", "libflate", "log", - "names", "pprof-pyroscope-fork", "prost 0.14.3", "reqwest", @@ -9084,10 +9122,10 @@ dependencies = [ "byteorder", "bytes", "cbc 0.1.2", - "cbc 0.2.0", - "cipher 0.5.1", + "cbc 0.2.1", + "cipher 0.5.2", "crypto-bigint 0.7.3", - "ctr 0.10.0", + "ctr 0.10.1", "ctr 0.9.2", "curve25519-dalek 5.0.0-pre.6", "data-encoding", @@ -9395,7 +9433,6 @@ dependencies = [ "metrics", "rustfs-config", "rustfs-ecstore", - "rustfs-s3-ops", "rustfs-s3-types", "rustfs-targets", "serde", @@ -9568,7 +9605,6 @@ dependencies = [ "rustfs-policy", "rustfs-protos", "rustfs-rio", - "rustfs-s3-ops", "rustfs-s3-types", "rustfs-signer", "rustfs-utils", @@ -10066,7 +10102,6 @@ dependencies = [ "pin-project-lite", "rand 0.10.1", "reqwest", - "rustfs-common", "rustfs-config", "rustfs-io-metrics", "rustfs-utils", @@ -10150,7 +10185,6 @@ dependencies = [ "futures", "http 1.4.0", "metrics", - "path-clean", "rand 0.10.1", "rmp-serde", "rustfs-common", @@ -10210,7 +10244,6 @@ dependencies = [ "rustfs-config", "rustfs-ecstore", "rustfs-kafka-async", - "rustfs-s3-ops", "rustfs-s3-types", "rustfs-utils", "rustls", @@ -10422,15 +10455,6 @@ dependencies = [ "security-framework", ] -[[package]] -name = "rustls-pemfile" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "rustls-pki-types" version = "1.14.1" @@ -10507,7 +10531,7 @@ checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" [[package]] name = "s3s" version = "0.14.0-dev" -source = "git+https://github.com/rustfs/s3s?rev=a3b16608df35aaeed8fff08b4988d03f4ca9445b#a3b16608df35aaeed8fff08b4988d03f4ca9445b" +source = "git+https://github.com/rustfs/s3s?rev=507e1312b211c3ddc214b03875d6fabd15d22ed5#507e1312b211c3ddc214b03875d6fabd15d22ed5" dependencies = [ "arc-swap", "arrayvec", @@ -10571,7 +10595,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f874456e72520ff1375a06c588eaf074b0f01f9e9e1aada45bd9b7954a6e42c" dependencies = [ "cfg-if", - "cipher 0.5.1", + "cipher 0.5.2", ] [[package]] @@ -12442,7 +12466,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4987bdc12753382e0bec4a65c50738ffaabc998b9cdd1f952fb5f39b0048a96" dependencies = [ - "crypto-common 0.2.1", + "crypto-common 0.2.2", "ctutils", ] diff --git a/Cargo.toml b/Cargo.toml index 81e38df94..dc28c8c26 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -115,7 +115,7 @@ rustfs-zip = { path = "./crates/zip", version = "1.0.0-beta.4" } # Async Runtime and Networking async-channel = "2.5.0" -mysql_async = { version = "0.36.1", default-features = false, features = ["default-rustls", "tracing"], git = "https://github.com/blackbeam/mysql_async", rev = "98d3d8067efdf97d3e93cdca7b9231753c904aca" } +mysql_async = { version = "0.36.1", default-features = false, features = ["default-rustls", "tracing"], git = "https://github.com/blackbeam/mysql_async", rev = "2bad388283bc3ce48801fc2ffcd22445eb6f3d24" } async-compression = { version = "0.4.42" } async-recursion = "1.1.1" async-trait = "0.1.89" @@ -166,7 +166,7 @@ aes-gcm = { version = "0.11.0-rc.3", features = ["rand_core"] } argon2 = { version = "0.6.0-rc.8" } blake2 = "0.11.0-rc.6" chacha20poly1305 = { version = "0.11.0-rc.3" } -crc-fast = "1.9.0" +crc-fast = "1.10.0" hmac = { version = "0.13.0" } jsonwebtoken = { version = "10.4.0", features = ["aws_lc_rs"] } openidconnect = { version = "4.0", default-features = false } @@ -201,7 +201,7 @@ aws-config = { version = "1.8.16" } aws-credential-types = { version = "1.2.14" } aws-sdk-s3 = { version = "1.132.0", default-features = false, features = ["sigv4a", "default-https-client", "rt-tokio"] } aws-smithy-http-client = { version = "1.1.12", default-features = false, features = ["default-client", "rustls-aws-lc"] } -aws-smithy-types = { version = "1.4.7" } +aws-smithy-types = { version = "1.4.8" } base64 = "0.22.1" base64-simd = "0.8.0" brotli = "8.0.2" @@ -229,7 +229,7 @@ ipnetwork = { version = "0.21.1", features = ["serde"] } lazy_static = "1.5.0" libc = "0.2.186" libsystemd = "0.7.2" -local-ip-address = "0.6.12" +local-ip-address = "0.6.13" memmap2 = "0.9.10" lz4 = "1.28.1" matchit = "0.9.2" @@ -258,7 +258,7 @@ redis = { version = "1.2.1", features = ["connection-manager", "tokio-rustls-com rustix = { version = "1.1.4", features = ["fs"] } rust-embed = { version = "8.11.0" } rustc-hash = { version = "2.1.2" } -s3s = { git = "https://github.com/rustfs/s3s", rev = "a3b16608df35aaeed8fff08b4988d03f4ca9445b", features = ["minio"] } +s3s = { git = "https://github.com/rustfs/s3s", rev = "507e1312b211c3ddc214b03875d6fabd15d22ed5", features = ["minio"] } serial_test = "3.4.0" shadow-rs = { version = "2.0.0", default-features = false } siphasher = "1.0.3" @@ -299,7 +299,7 @@ opentelemetry-otlp = { version = "0.32.0", features = ["gzip-http", "reqwest-rus opentelemetry_sdk = { version = "0.32.0", features = ["rt-tokio"] } opentelemetry-semantic-conventions = { version = "0.32.0", features = ["semconv_experimental"] } opentelemetry-stdout = { version = "0.32.0" } -pyroscope = { version = "2.0.3", features = ["backend-pprof-rs"] } +pyroscope = { version = "2.0.4", features = ["backend-pprof-rs"] } # FTP and SFTP libunftp = { version = "0.23.0", features = ["experimental"] } diff --git a/crates/audit/Cargo.toml b/crates/audit/Cargo.toml index f58ae10ef..9f3f05c38 100644 --- a/crates/audit/Cargo.toml +++ b/crates/audit/Cargo.toml @@ -30,7 +30,6 @@ rustfs-targets = { workspace = true } rustfs-config = { workspace = true, features = ["audit", "constants"] } rustfs-ecstore = { workspace = true } rustfs-s3-types = { workspace = true } -rustfs-s3-ops = { workspace = true } chrono = { workspace = true } const-str = { workspace = true } futures = { workspace = true } diff --git a/crates/config/src/constants/app.rs b/crates/config/src/constants/app.rs index 305d4052c..b77db7edc 100644 --- a/crates/config/src/constants/app.rs +++ b/crates/config/src/constants/app.rs @@ -299,9 +299,9 @@ pub const DEFAULT_OBS_LOGS_EXPORT_ENABLED: bool = true; /// Default profiling export enabled /// It is used to enable or disable exporting profiles -/// Default value: false +/// Default value: true /// Environment variable: RUSTFS_OBS_PROFILING_EXPORT_ENABLED -pub const DEFAULT_OBS_PROFILING_EXPORT_ENABLED: bool = false; +pub const DEFAULT_OBS_PROFILING_EXPORT_ENABLED: bool = true; /// Default log local logging enabled for rustfs /// This is the default log local logging enabled for rustfs. diff --git a/crates/e2e_test/Cargo.toml b/crates/e2e_test/Cargo.toml index c410a0009..6855657bf 100644 --- a/crates/e2e_test/Cargo.toml +++ b/crates/e2e_test/Cargo.toml @@ -31,7 +31,6 @@ sftp = [] [dependencies] rustfs-config = { workspace = true, features = ["constants"] } rustfs-ecstore.workspace = true -rustfs-common.workspace = true rustfs-data-usage.workspace = true rustfs-rio.workspace = true flatbuffers.workspace = true diff --git a/crates/ecstore/Cargo.toml b/crates/ecstore/Cargo.toml index 7e8ec1312..e3dfe1fd6 100644 --- a/crates/ecstore/Cargo.toml +++ b/crates/ecstore/Cargo.toml @@ -46,7 +46,6 @@ rustfs-policy.workspace = true rustfs-protos.workspace = true rustfs-kms.workspace = true rustfs-s3-types = { workspace = true } -rustfs-s3-ops = { workspace = true } rustfs-data-usage.workspace = true rustfs-object-capacity.workspace = true async-trait.workspace = true diff --git a/crates/obs/src/config.rs b/crates/obs/src/config.rs index 4abd0a160..8c86087f4 100644 --- a/crates/obs/src/config.rs +++ b/crates/obs/src/config.rs @@ -54,6 +54,8 @@ use rustfs_utils::{ }; use serde::{Deserialize, Serialize}; use std::env; +#[cfg(test)] +use std::sync::{Mutex, OnceLock}; const LEGACY_ENV_OBS_PROFILING_ENABLED: &str = "RUSTFS_OBS_PROFILING_ENABLED"; @@ -429,32 +431,49 @@ pub fn is_production_environment() -> bool { mod tests { use super::*; + static PROFILING_ENV_TEST_LOCK: OnceLock> = OnceLock::new(); + + fn with_profiling_env_lock(f: F) + where + F: FnOnce(), + { + let _guard = PROFILING_ENV_TEST_LOCK.get_or_init(|| Mutex::new(())).lock().unwrap(); + f(); + } + + fn extract_profiling_export_enabled() -> Option { + OtelConfig::extract_otel_config_from_env(None).profiling_export_enabled + } + #[test] fn profiling_export_defaults_to_disabled_when_unset() { - temp_env::with_var_unset(ENV_OBS_PROFILING_EXPORT_ENABLED, || { - temp_env::with_var_unset(LEGACY_ENV_OBS_PROFILING_ENABLED, || { - let config = OtelConfig::extract_otel_config_from_env(None); - assert_eq!(config.profiling_export_enabled, Some(false)); + with_profiling_env_lock(|| { + temp_env::with_var_unset(ENV_OBS_PROFILING_EXPORT_ENABLED, || { + temp_env::with_var_unset(LEGACY_ENV_OBS_PROFILING_ENABLED, || { + assert_eq!(extract_profiling_export_enabled(), Some(DEFAULT_OBS_PROFILING_EXPORT_ENABLED)); + }); }); }); } #[test] fn profiling_export_accepts_legacy_env_alias() { - temp_env::with_var_unset(ENV_OBS_PROFILING_EXPORT_ENABLED, || { - temp_env::with_var(LEGACY_ENV_OBS_PROFILING_ENABLED, Some("true"), || { - let config = OtelConfig::extract_otel_config_from_env(None); - assert_eq!(config.profiling_export_enabled, Some(true)); + with_profiling_env_lock(|| { + temp_env::with_var_unset(ENV_OBS_PROFILING_EXPORT_ENABLED, || { + temp_env::with_var(LEGACY_ENV_OBS_PROFILING_ENABLED, Some("true"), || { + assert_eq!(extract_profiling_export_enabled(), Some(true)); + }); }); }); } #[test] fn canonical_profiling_toggle_has_priority_over_legacy_alias() { - temp_env::with_var(LEGACY_ENV_OBS_PROFILING_ENABLED, Some("true"), || { - temp_env::with_var(ENV_OBS_PROFILING_EXPORT_ENABLED, Some("false"), || { - let config = OtelConfig::extract_otel_config_from_env(None); - assert_eq!(config.profiling_export_enabled, Some(false)); + with_profiling_env_lock(|| { + temp_env::with_var(LEGACY_ENV_OBS_PROFILING_ENABLED, Some("true"), || { + temp_env::with_var(ENV_OBS_PROFILING_EXPORT_ENABLED, Some("false"), || { + assert_eq!(extract_profiling_export_enabled(), Some(false)); + }); }); }); } diff --git a/crates/rio/Cargo.toml b/crates/rio/Cargo.toml index cf587d057..7b749ce18 100644 --- a/crates/rio/Cargo.toml +++ b/crates/rio/Cargo.toml @@ -42,7 +42,6 @@ tokio-util.workspace = true faster-hex.workspace = true futures.workspace = true rustfs-config = { workspace = true, features = ["constants"] } -rustfs-common.workspace = true rustfs-io-metrics.workspace = true rustfs-utils = { workspace = true, features = ["io", "hash", "compress", "tls"] } serde_json.workspace = true diff --git a/crates/scanner/Cargo.toml b/crates/scanner/Cargo.toml index b699e4d7e..def18a36e 100644 --- a/crates/scanner/Cargo.toml +++ b/crates/scanner/Cargo.toml @@ -42,7 +42,6 @@ async-trait = { workspace = true } futures = { workspace = true } time = { workspace = true } chrono = { workspace = true } -path-clean = { workspace = true } rmp-serde = { workspace = true } rustfs-filemeta = { workspace = true } tokio-util = { workspace = true } diff --git a/crates/targets/Cargo.toml b/crates/targets/Cargo.toml index 787ddb408..576f42885 100644 --- a/crates/targets/Cargo.toml +++ b/crates/targets/Cargo.toml @@ -16,7 +16,6 @@ rustfs-config = { workspace = true, features = ["notify", "constants", "audit"] rustfs-ecstore = { workspace = true } rustfs-utils = { workspace = true, features = ["notify", "tls"] } rustfs-s3-types = { workspace = true } -rustfs-s3-ops = { workspace = true } async-trait = { workspace = true } async-nats = { workspace = true } deadpool-postgres = { workspace = true } diff --git a/crates/utils/src/os/fs_type.rs b/crates/utils/src/os/fs_type.rs index 24149ef24..6e19c675a 100644 --- a/crates/utils/src/os/fs_type.rs +++ b/crates/utils/src/os/fs_type.rs @@ -43,7 +43,7 @@ pub(crate) fn get_fs_type(fs_type: u64) -> &'static str { #[cfg(test)] mod tests { - use super::*; + use super::get_fs_type; #[test] fn map_common_linux_filesystem_magic_numbers() { diff --git a/crates/utils/src/os/mod.rs b/crates/utils/src/os/mod.rs index 9f7577f53..318bb6451 100644 --- a/crates/utils/src/os/mod.rs +++ b/crates/utils/src/os/mod.rs @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +#[cfg(target_os = "linux")] mod fs_type; #[cfg(target_os = "linux")] diff --git a/deny.toml b/deny.toml index 1b0f1f316..221bbe283 100644 --- a/deny.toml +++ b/deny.toml @@ -23,11 +23,9 @@ ignore = [ # transitively. Tracked for upgrade as part of broader dep refresh. # owner: rustfs-maintainers review: 2026-07 { id = "RUSTSEC-2024-0384", reason = "instant unmaintained; transitive only; tracked for upgrade" }, - # `paste 1.0.15` — unmaintained. No direct dependency. # owner: rustfs-maintainers review: 2026-07 { id = "RUSTSEC-2024-0436", reason = "paste unmaintained; transitive only; tracked for upgrade" }, - # `rsa` Marvin timing sidechannel (RUSTSEC-2023-0071). Pulled in via # `openidconnect` (transitive) and historically used directly. No upstream # fix is available yet. Tracked separately for follow-up; remove this @@ -46,8 +44,11 @@ allow-git = [ # Pinned to a specific commit in workspace Cargo.toml. "https://github.com/rustfs/s3s", # Temporary git source for russh until required upstream fixes are released. - # owner: rustfs-maintainers review: 2026-07 + # owner: rustfs-maintainers review: 2026-05 "https://github.com/Eugeny/russh", + # Temporary git source for mysql_async until required upstream fixes are released. + # owner: rustfs-maintainers review: 2026-05 + "https://github.com/blackbeam/mysql_async", ] [bans] @@ -77,9 +78,9 @@ allow = [ "Apache-2.0 WITH LLVM-exception", "BSD-2-Clause", "BSD-3-Clause", - "BSL-1.0", # boost; tracing-related crates + "BSL-1.0", # boost; tracing-related crates "CC0-1.0", - "CDLA-Permissive-2.0",# webpki / linux-raw-sys metadata + "CDLA-Permissive-2.0", # webpki / linux-raw-sys metadata "ISC", "MIT", "MIT-0", @@ -92,13 +93,11 @@ exceptions = [ # `ring` ships a custom license combining ISC, MIT, and an OpenSSL-style # notice that does not parse cleanly as SPDX OpenSSL. { allow = ["ISC", "MIT"], crate = "ring" }, - # `inferno` is CDDL-1.0 (copyleft). Used only by profiling tooling # (pyroscope / jemalloc_pprof) which is opt-in and never linked into the # default S3 path. Tracked as an exception rather than a blanket allow. # owner: rustfs-maintainers review: 2026-07 { allow = ["CDDL-1.0"], crate = "inferno" }, - # `libbz2-rs-sys` carries the upstream bzip2-1.0.6 license. It's used # transitively via `bzip2`. Not on a hot path. # owner: rustfs-maintainers review: 2026-07 diff --git a/rustfs/Cargo.toml b/rustfs/Cargo.toml index 00bb57e12..d07b90bb7 100644 --- a/rustfs/Cargo.toml +++ b/rustfs/Cargo.toml @@ -173,7 +173,7 @@ libsystemd.workspace = true [target.'cfg(not(all(target_os = "linux", target_env = "gnu", target_arch = "x86_64")))'.dependencies] mimalloc = { workspace = true } -libmimalloc-sys = { version = "0.1.47", features = ["extended"] } +libmimalloc-sys = { version = "0.1.48", features = ["extended"] } diff --git a/scripts/run.sh b/scripts/run.sh index bb57cf98d..74ea17f42 100755 --- a/scripts/run.sh +++ b/scripts/run.sh @@ -56,11 +56,15 @@ if [ -z "${RUSTFS_ALLOCATOR_RECLAIM_ENABLED+x}" ]; then export RUSTFS_ALLOCATOR_RECLAIM_ENABLED=true fi -export RUSTFS_VOLUMES="./target/volume/test{1...4}" +export RUSTFS_VOLUMES="${RUSTFS_VOLUMES:-./target/volume/test{1...4}}" # export RUSTFS_VOLUMES="./target/volume/test" -export RUSTFS_ADDRESS=":9000" -export RUSTFS_CONSOLE_ENABLE=true -export RUSTFS_CONSOLE_ADDRESS=":9001" +export RUSTFS_ADDRESS="${RUSTFS_ADDRESS:-:9000}" +export RUSTFS_ACCESS_KEY="${RUSTFS_ACCESS_KEY:-rustfs-admin}" +export RUSTFS_SECRET_KEY="${RUSTFS_SECRET_KEY:-rustfs-secret}" +export RUSTFS_RPC_SECRET="${RUSTFS_RPC_SECRET:-rustfs-rpc-secret}" +export RUSTFS_REGION="${RUSTFS_REGION:-us-east-1}" +export RUSTFS_CONSOLE_ENABLE="${RUSTFS_CONSOLE_ENABLE:-true}" +export RUSTFS_CONSOLE_ADDRESS="${RUSTFS_CONSOLE_ADDRESS:-:9001}" # export RUSTFS_SERVER_DOMAINS="localhost:9000" # HTTPS certificate directory # export RUSTFS_TLS_PATH="./deploy/certs" @@ -75,8 +79,9 @@ export RUSTFS_OBS_ENDPOINT=http://localhost:4318 # OpenTelemetry Collector addre #export RUSTFS_OBS_LOG_ENDPOINT=http://loki:3100/otlp/v1/logs # OpenTelemetry Collector logs address http://loki:3100/otlp/v1/logs #export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://loki:3100/otlp/v1/logs export RUSTFS_OBS_PROFILING_ENDPOINT=http://localhost:4040 # OpenTelemetry Collector profiling address +export RUSTFS_OBS_PROFILING_EXPORT_ENABLED="${RUSTFS_OBS_PROFILING_EXPORT_ENABLED:-true}" # Whether to enable profiling export export RUSTFS_OBS_USE_STDOUT=false # Whether to use standard output -export RUSTFS_OBS_SAMPLE_RATIO=2.0 # Sample ratio, between 0.0-1.0, 0.0 means no sampling, 1.0 means full sampling +export RUSTFS_OBS_SAMPLE_RATIO=1.0 # Sample ratio, between 0.0-1.0, 0.0 means no sampling, 1.0 means full sampling export RUSTFS_OBS_METER_INTERVAL=1 # Sampling interval in seconds export RUSTFS_OBS_SERVICE_NAME=rustfs # Service name export RUSTFS_OBS_SERVICE_VERSION=0.1.0 # Service version