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
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