Simon Pearce
11/14/2025, 8:46 AMMahesh Binzer-Panchal
11/14/2025, 8:52 AMThis is a classic Java Virtual Machine (JVM) issue, not a Singularity/Apptainer problem itself. The CI environment is just exposing it.
That error comes from Java. The directoryis where the HotSpot JVM writes performance data to allow external tools (like/tmp/hsperfdata_runneror VisualVM) to monitor it.jps
The problem is that on your CI runner, theuser is likely being re-used for multiple concurrent jobs, or a previous job's process died uncleanly and left a stale, locked file. When your new Java process (with PID 93) starts, it tries to create its file (runner) but finds the directory is locked by another process (or a ghost of one)./tmp/hsperfdata_runner/93
🚀 The Quickest Fix
The easiest and most common solution is to simply tell the JVM not to create these files. You almost never need them in a non-production, non-debugging CI environment.
You do this by passing a flag to yourcommand:java
-XX:-UsePerfData
This flag tells the JVM to disable the creation of theI guess this is something that needs to be exported in the environment so it gets passed to the JVM.files entirely, which completely bypasses the problem.hsperfdata
Mahesh Binzer-Panchal
11/14/2025, 8:53 AMMahesh Binzer-Panchal
11/14/2025, 8:56 AMexport JAVA_TOOL_OPTIONS="-XX:-UsePerfData" to the GH action in the PR and see if that helpsSimon Pearce
11/14/2025, 9:00 AMMahesh Binzer-Panchal
11/14/2025, 9:01 AMSimon Pearce
11/14/2025, 9:01 AMSimon Pearce
11/14/2025, 9:02 AM-XX:-UsePerfData set in quite a lot of modules (mostly GATK)Matthieu Muffato
11/14/2025, 9:39 AMMatthieu Muffato
11/14/2025, 9:41 AMSo I’ve noticed an interesting bug in relation to running Nextflow jobs with singularity on the farm caused by how singularity handles PIDs because of bad practices by certain processes in how they use /tmp. What happens is that because by default each nextflow-singularity container gets it’s own PID namespace starting from 1 but shares /tmp two copies of the same container can end up fighting over the same files in /tmp. We’ve noticed this in srst2 and Java’s perfdata . We have a workaround
export NXF_SINGULARITY_NEW_PID_NAMESPACE=false
This disables pid namespacing in nextflow singularity images.
https://github.com/nextflow-io/nextflow/issues/5310
Jim Downie
11/14/2025, 11:05 AMsingularity {
runOptions = "--pid=false"
}Simon Pearce
11/14/2025, 11:10 AM