mirror of
https://github.com/mongodb/mongo.git
synced 2024-11-24 00:17:37 +01:00
SERVER-90036 Set glibc.pthread.rseq on evergreen variants with glibc version >= 2.34 (#21713)
GitOrigin-RevId: 376c345d34577098b95aedbc9daa2a7b937497f4
This commit is contained in:
parent
32ccfe3d0b
commit
1dde2576ec
@ -12,6 +12,7 @@ evergreen_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" > /dev/null 2>&1 && pwd)"
|
||||
. "$evergreen_dir/prelude_venv.sh"
|
||||
. "$evergreen_dir/prelude_db_contrib_tool.sh"
|
||||
. "$evergreen_dir/prelude_mongo_task_generator.sh"
|
||||
. "$evergreen_dir/prelude_system_env_variables.sh"
|
||||
|
||||
expansions_yaml="$evergreen_dir/../../expansions.yml"
|
||||
expansions_default_yaml="$evergreen_dir/../etc/expansions.default.yml"
|
||||
|
25
evergreen/prelude_system_env_variables.sh
Executable file
25
evergreen/prelude_system_env_variables.sh
Executable file
@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
get_glibc_version() {
|
||||
getconf GNU_LIBC_VERSION | cut -d ' ' -f 2
|
||||
}
|
||||
|
||||
# Systems with glibc 2.34 or newer register custom rseq ABI
|
||||
# behavior that is incompatible with the new TCMalloc, and will cause
|
||||
# TCMalloc's rseq functionality to break and fall back to the per-thread
|
||||
# cache behavior. Systems with an older glibc version will successfully
|
||||
# use TCMalloc's per-CPU caches. We must ensure this environment variable is
|
||||
# set on problematic systems.
|
||||
configure_glibc_pthread_req() {
|
||||
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
||||
local ver="$(get_glibc_version)"
|
||||
local major="$(echo $ver | cut -d '.' -f 1)"
|
||||
local minor="$(echo $ver | cut -d '.' -f 2)"
|
||||
if ((major > 2 || ((major == 2 && minor >= 34)))); then
|
||||
export GLIBC_TUNABLES="glibc.pthread.rseq=0"
|
||||
echo "glibc version >= 2.34 detected, setting env variable GLIBC_TUNABLES=glibc.pthread.rseq=0"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
configure_glibc_pthread_req
|
Loading…
Reference in New Issue
Block a user