/tmp partition restrictions or missing system libraries.
Symptoms
You may see errors similar to:- The
/tmppartition is mounted withnoexecflag - Security policies prevent execution from temporary directories
- Container environments with restricted
/tmppermissions - The
libstdc++library is missing in the Docker/container image
Solution
Fix 1: Non-executable /tmp partition
If /tmp is not executable, set the trace_spans_lib_directory property to an alternative directory that allows execution (e.g., /opt/atatus).
Step 1: Create the directory and set permissions
The directory must exist and be executable before the application starts.Step 2: Configure the agent
java.io.tmpdir system property will be used.
Fix 2: Missing libstdc++ on Alpine Linux
If you are using an Alpine-based Docker image (e.g., eclipse-temurin:17-jre-alpine), the error may occur because Alpine uses musl libc instead of glibc. The async-profiler requires libstdc++ which is not included by default in Alpine.
The key indicator is this error message:
libstdc++: Required by the async-profilergcompat: glibc compatibility layer for Alpine
eclipse-temurin:17-jre-jammy instead of Alpine.