Skip to content

Commit 1fa4716

Browse files
author
Ahmad El Youssef
committed
Fix tao_bench sudo on CentOS 9/10
CentOS stream9/10 containers run as root but with root locked until the workflow enables sudo — prior install script called sudo dnf/ln/rm unconditionally, failing with account validation failure. Reuse the proven video_transcode/wdl pattern: probe sudo -n and fall back to bare dnf when sudo is not yet usable (SUDO=""). Test Plan: - bash -n packages/tao_bench/install_tao_bench*.sh
1 parent 89a46cc commit 1fa4716

2 files changed

Lines changed: 42 additions & 14 deletions

File tree

packages/tao_bench/install_tao_bench_aarch64.sh

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,16 +48,30 @@ else
4848
echo "Warning: unsupported platform ${LINUX_DIST_ID}-${LINUX_DIST_ID}"
4949
fi
5050

51+
# CentOS containers run as root but with root locked and no sudo PAM
52+
# setup until the workflow adds it — `sudo` fails there with
53+
# "account validation failure, is your account locked?" on dnf installs.
54+
SUDO=""
5155
if distro_is_like centos; then
52-
sudo dnf install -y cmake iperf3 autoconf automake \
56+
if sudo -n true 2>/dev/null; then
57+
SUDO="sudo"
58+
else
59+
SUDO=""
60+
fi
61+
elif distro_is_like ubuntu; then
62+
SUDO="sudo"
63+
fi
64+
65+
if distro_is_like centos; then
66+
${SUDO} dnf install -y cmake iperf3 autoconf automake \
5367
libevent-devel openssl openssl-devel \
5468
zlib-devel bzip2-devel xz-devel lz4-devel libzstd-devel \
5569
snappy-devel libaio-devel libunwind-devel patch \
5670
double-conversion-devel libsodium-devel \
5771
gflags-devel-2.2.2 fmt-devel perl libtool ${PCRE_NAME} \
5872
git python3-devel binutils binutils-devel ${GLOG_NAME}
5973
elif distro_is_like ubuntu; then
60-
sudo apt install -y cmake iperf3 autoconf automake flex bison \
74+
${SUDO} apt install -y cmake iperf3 autoconf automake flex bison \
6175
libevent-dev openssl libssl-dev \
6276
libzstd-dev lz4 liblz4-dev xzip libsnappy-dev zlib1g-dev bzip2 \
6377
libaio-dev libunwind-dev patch libghc-double-conversion-dev \
@@ -73,7 +87,7 @@ mkdir -p "${TAO_BENCH_DEPS}"
7387
pushd "${TAO_BENCH_ROOT}"
7488

7589
if ! [ -f "/usr/local/bin/cmake" ]; then
76-
sudo ln -s /usr/bin/cmake /usr/local/bin/cmake
90+
${SUDO} ln -s /usr/bin/cmake /usr/local/bin/cmake
7791
fi
7892

7993
# Install openssl
@@ -173,10 +187,10 @@ fi
173187

174188
# Build and install
175189
if ! [ -f "/usr/bin/aclocal-1.16" ]; then
176-
sudo ln -s /usr/bin/aclocal /usr/bin/aclocal-1.16
190+
${SUDO} ln -s /usr/bin/aclocal /usr/bin/aclocal-1.16
177191
fi
178192
if ! [ -f "/usr/bin/automake-1.16" ]; then
179-
sudo ln -s /usr/bin/automake /usr/bin/automake-1.16
193+
${SUDO} ln -s /usr/bin/automake /usr/bin/automake-1.16
180194
fi
181195

182196
./configure --with-folly="${FOLLY_INSTALLED_PATH}" --with-fmt="${FMT_INSTALLED_PATH}" \
@@ -185,10 +199,10 @@ fi
185199
make -j"$(nproc)"
186200

187201
if [ -L /usr/bin/aclocal-1.16 ]; then
188-
sudo rm -f /usr/bin/aclocal-1.16
202+
${SUDO} rm -f /usr/bin/aclocal-1.16
189203
fi
190204
if [ -L /usr/bin/automake-1.16 ]; then
191-
sudo rm -f /usr/bin/automake-1.16
205+
${SUDO} rm -f /usr/bin/automake-1.16
192206
fi
193207

194208
cp memcached "${TAO_BENCH_ROOT}/tao_bench_server"

packages/tao_bench/install_tao_bench_x86_64.sh

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,30 @@ else
4545
echo "Warning: unsupported platform ${LINUX_DIST_ID}-${LINUX_DIST_ID}"
4646
fi
4747

48+
# CentOS containers run as root but with root locked and no sudo PAM
49+
# setup until the workflow adds it — `sudo` fails there with
50+
# "account validation failure, is your account locked?" on dnf installs.
51+
SUDO=""
4852
if [ "$LINUX_DIST_ID" = "ubuntu" ]; then
49-
sudo apt install -y cmake iperf3 autoconf automake flex bison \
53+
SUDO="sudo"
54+
elif [ "$LINUX_DIST_ID" = "centos" ]; then
55+
if sudo -n true 2>/dev/null; then
56+
SUDO="sudo"
57+
else
58+
SUDO=""
59+
fi
60+
fi
61+
62+
if [ "$LINUX_DIST_ID" = "ubuntu" ]; then
63+
${SUDO} apt install -y cmake iperf3 autoconf automake flex bison \
5064
libevent-dev openssl libssl-dev \
5165
libzstd-dev lz4 liblz4-dev xzip libsnappy-dev zlib1g-dev bzip2 \
5266
libaio-dev libunwind-dev patch libghc-double-conversion-dev \
5367
libsodium-dev libfmt-dev libtool perl git \
5468
libgoogle-glog-dev python3-dev pkg-config \
5569
git libpcre3 libpcre3-dev libgflags2.2 libgflags-dev
5670
elif [ "$LINUX_DIST_ID" = "centos" ]; then
57-
sudo dnf install -y cmake iperf3 autoconf automake \
71+
${SUDO} dnf install -y cmake iperf3 autoconf automake \
5872
libevent-devel openssl openssl-devel \
5973
zlib-devel bzip2-devel xz-devel lz4-devel libzstd-devel \
6074
snappy-devel libaio-devel libunwind-devel patch \
@@ -68,7 +82,7 @@ mkdir -p "${TAO_BENCH_DEPS}"
6882
pushd "${TAO_BENCH_ROOT}"
6983

7084
if ! [ -f "/usr/local/bin/cmake" ]; then
71-
sudo ln -s /usr/bin/cmake /usr/local/bin/cmake
85+
${SUDO} ln -s /usr/bin/cmake /usr/local/bin/cmake
7286
fi
7387

7488
# Install openssl
@@ -171,10 +185,10 @@ fi
171185

172186
# Build and install
173187
if ! [ -f "/usr/bin/aclocal-1.16" ]; then
174-
sudo ln -s /usr/bin/aclocal /usr/bin/aclocal-1.16
188+
${SUDO} ln -s /usr/bin/aclocal /usr/bin/aclocal-1.16
175189
fi
176190
if ! [ -f "/usr/bin/automake-1.16" ]; then
177-
sudo ln -s /usr/bin/automake /usr/bin/automake-1.16
191+
${SUDO} ln -s /usr/bin/automake /usr/bin/automake-1.16
178192
fi
179193

180194
./configure --with-folly="${FOLLY_INSTALLED_PATH}" --with-fmt="${FMT_INSTALLED_PATH}" \
@@ -183,10 +197,10 @@ fi
183197
make -j"$(nproc)"
184198

185199
if [ -L /usr/bin/aclocal-1.16 ]; then
186-
sudo rm -f /usr/bin/aclocal-1.16
200+
${SUDO} rm -f /usr/bin/aclocal-1.16
187201
fi
188202
if [ -L /usr/bin/automake-1.16 ]; then
189-
sudo rm -f /usr/bin/automake-1.16
203+
${SUDO} rm -f /usr/bin/automake-1.16
190204
fi
191205

192206
cp memcached "${TAO_BENCH_ROOT}/tao_bench_server"

0 commit comments

Comments
 (0)