fix(runtime): update codec and debug stack headroom (#5164)

* fix(runtime): raise debug worker stack headroom

Co-Authored-By: heihutu <heihutu@gmail.com>

* chore(deps): update codec to 8.0.2

Co-Authored-By: heihutu <heihutu@gmail.com>

---------

Co-authored-by: heihutu <heihutu@gmail.com>
This commit is contained in:
houseme
2026-07-24 09:27:49 +08:00
committed by GitHub
parent d26adc29ca
commit 0269c47bc6
3 changed files with 28 additions and 6 deletions
Generated
+2 -2
View File
@@ -9200,9 +9200,9 @@ dependencies = [
[[package]]
name = "rustfs-erasure-codec"
version = "8.0.1"
version = "8.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a39413e8f0ca32be9bc2ca9d29f8d17a2ddf952748284cf0fd148ab11180cf6c"
checksum = "bb8ba5edcc507013a0a7bcf7424be94f0ef070b38eab8bcbc38206a8148bc70a"
dependencies = [
"cc",
"cfg_aliases",
+1 -1
View File
@@ -278,7 +278,7 @@ pretty_assertions = "1.4.1"
rand = { version = "0.10.2" }
ratelimit = "0.10.1"
rayon = "1.12.0"
reed-solomon-erasure = { package = "rustfs-erasure-codec", version = "8.0.1" }
reed-solomon-erasure = { package = "rustfs-erasure-codec", version = "8.0.2" }
reed-solomon-simd = "3.1.0"
regex = { version = "1.13.1" }
rumqttc = { package = "rumqttc-next", version = "0.33.3" }
+25 -3
View File
@@ -19,15 +19,37 @@ use rustfs_obs::dial9::Dial9SessionGuard;
#[inline]
fn compute_default_thread_stack_size() -> usize {
// Baseline: Release 1 MiBDebug 2 MiBmacOS at least 2 MiB
// macOS is more conservative: many system libraries and backtracking are more "stack-eating"
if cfg!(debug_assertions) || cfg!(target_os = "macos") {
if cfg!(debug_assertions) {
// Debug builds keep larger async futures and tracing state on the stack;
// scanner e2e paths need more headroom than the release runtime.
8 * rustfs_config::DEFAULT_THREAD_STACK_SIZE
} else if cfg!(target_os = "macos") {
// macOS is more conservative: many system libraries and backtracking are more "stack-eating"
2 * rustfs_config::DEFAULT_THREAD_STACK_SIZE
} else {
rustfs_config::DEFAULT_THREAD_STACK_SIZE
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn default_thread_stack_size_matches_build_profile() {
let default_stack = rustfs_config::DEFAULT_THREAD_STACK_SIZE;
let expected = if cfg!(debug_assertions) {
8 * default_stack
} else if cfg!(target_os = "macos") {
2 * default_stack
} else {
default_stack
};
assert_eq!(compute_default_thread_stack_size(), expected);
}
}
#[inline]
fn detect_cores() -> usize {
// Priority physical cores, fallback logic cores, minimum 1