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
This commit is contained in:
houseme
2026-05-20 23:03:07 +08:00
committed by GitHub
parent b2dfdf85de
commit dcbffb084f
15 changed files with 166 additions and 124 deletions
Generated
+108 -84
View File
@@ -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",
]
+6 -6
View File
@@ -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"] }
-1
View File
@@ -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 }
+2 -2
View File
@@ -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.
-1
View File
@@ -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
-1
View File
@@ -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
+31 -12
View File
@@ -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<Mutex<()>> = OnceLock::new();
fn with_profiling_env_lock<F>(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<bool> {
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));
});
});
});
}
-1
View File
@@ -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
-1
View File
@@ -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 }
-1
View File
@@ -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 }
+1 -1
View File
@@ -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() {
+1
View File
@@ -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")]
+6 -7
View File
@@ -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
+1 -1
View File
@@ -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"] }
+10 -5
View File
@@ -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