test: drop any memory limits from units when running with sanitizers
As the memory usage under sanitizers is quite unpredictable. This is currently relevant mainly for Polkit, as it introduced memory limits for its polkitd.service unit in the latest version [0] which are very easy to trigger when running under sanitizers (as polkitd depends on libsystemd which brings ASan into polkitd's address space). [0] https://github.com/polkit-org/polkit/commit/7d9c06c58a957ee3f2a4383ade6f207b05207e3e
This commit is contained in:
@@ -9,13 +9,17 @@ if [[ ! -f "$BUILDROOT/$LIBSYSTEMD" ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# ASAN and syscall filters aren't compatible with each other.
|
||||
# ASAN and syscall filters aren't compatible with each other. Also, drop any memory limits
|
||||
# as these are quite unpredictable when running under sanitizers.
|
||||
find "$BUILDROOT"/usr "$BUILDROOT"/etc -name '*.service' -type f | while read -r unit; do
|
||||
if grep -q -e MemoryDeny -e SystemCall "$unit" ; then
|
||||
if grep -q -e MemoryDeny -e MemoryMax -e MemoryHigh -e MemorySwapMax -e SystemCall "$unit" ; then
|
||||
mkdir -p "$unit.d"
|
||||
cat > "$unit.d/sanitizer-compat.conf" <<EOF
|
||||
[Service]
|
||||
MemoryDenyWriteExecute=no
|
||||
MemoryMax=
|
||||
MemoryHigh=
|
||||
MemorySwapMax=
|
||||
SystemCallFilter=
|
||||
EOF
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user