Franziska Bonath
03/12/2026, 1:09 PMdocker run -i --cpu-shares 2048 --memory 8192m --platform linux/amd64 -v /Users/franziska.franziska/workspace/seqinspector:/Users/franziska.franziska/workspace/seqinspector -u $(id -u):$(id -g) <http://community.wave.seqera.io/library/toulligqc:2.8.4--2e474221a8568dff|community.wave.seqera.io/library/toulligqc:2.8.4--2e474221a8568dff> toulligqc --fastq Undetermined_S0_L001_R1_001.fastq.gz --output-directory Undetermined_05
and get yet another error that seems to be linked to the mac chip issue:
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
@Mahesh Binzer-PanchalMahesh Binzer-Panchal
03/12/2026, 1:10 PMFranziska Bonath
03/12/2026, 1:11 PMMahesh Binzer-Panchal
03/12/2026, 1:14 PMRoot Cause Analysis: toulligqc Segmentation Fault
Based on my research, I've identified the specific reason whyis failing with exit status 139 (segmentation fault) under QEMU emulation on your Mac with Apple Silicon:toulligqc
The Culprit: h5py and HDF5 Library
Key Dependencies of toulligqc:
From the PyPI page, toulligqc requires:
• h5py - Python bindings for HDF5
• pod5 - Oxford Nanopore POD5 file format (also uses HDF5 internally)
• numpy, pandas, scipy, scikit-learn, pysam, plotly, matplotlib, tqdm
Why h5py Causes Segfaults Under QEMU:
HDF5 is Architecture-Specific C Code
HDF5 (Hierarchical Data Format 5) is written in C with architecture-specific optimizations
1. During compilation, HDF5 generates architecture-specific headers (,H5Tinit.c) by running test programs on the target architectureH5lib_settings.c
2. These headers contain hardware-specific details about:
3. Data type sizes and alignment
4. Byte ordering (endianness)
5. Floating-point representation
6. Memory layout
Cross-Architecture Incompatibility
1. The biocontainers image () contains x86_64 compiled binaries of HDF5<http://quay.io/biocontainers/toulligqc:2.7.1|quay.io/biocontainers/toulligqc:2.7.1>
2. When QEMU tries to emulate these x86_64 binaries on ARM:
3. Memory access patterns differ between architectures
4. System calls are translated but may have subtle differences
5. SIMD instructions (SSE/AVX on x86) don't map cleanly to ARM NEON
6. Thread synchronization primitives behave differently under emulation
FASTQ File Processing = Heavy I/O + Memory Operations
1. Your command processesfiles, which likely triggers:.fastq.gz
2. Memory-mapped I/O (mmap) - notoriously problematic in QEMU
3. Large buffer allocations - emulation has 2-3x memory overhead
4. Multi-threaded decompression - thread emulation is fragile
5. HDF5 writes - complex file format with metadata and chunked storage
Why It's Failing at Runtime (Not Compile Time)
The container already contains pre-compiled x86_64 binaries of h5py/HDF5
1. QEMU successfully loads and starts the program
2. Segfault occurs when HDF5 tries to:
3. Access memory with x86-specific alignment assumptions
4. Use atomic operations that don't emulate correctly
5. Perform file I/O with architecture-specific buffer handling
Why This Specific Problem:
HDF5 is Notoriously Difficult to Cross-Compile
From the research:
HDF5 developers explicitly discourage cross-compilation
• The build process requires running test programs on the target architecture
• Cannot cross-compile from x86 → ARM or ARM → x86 easily
• This is a known limitation documented in HDF5 forums
Bioinformatics Tools + HDF5 = Common Pain Point
Oxford Nanopore sequencing uses HDF5 formats (FAST5, POD5)
• Many tools in the biocontainers repository are only built for x86_64
• No ARM64 builds available because HDF5 cross-compilation is hard
Mahesh Binzer-Panchal
03/12/2026, 1:15 PMnoarchMahesh Binzer-Panchal
03/12/2026, 1:17 PMFranziska Bonath
03/12/2026, 1:18 PMFranziska Bonath
03/12/2026, 1:18 PM