Skip to content

kmer prefilter died, crashed in Sequence destructor with memory free checksum error #1037

@tomgoddard

Description

@tomgoddard

mmseqs search of a pair of sequences against Colabfold env database fails on Mac ARM with 64 GB of memory with a "prefilter died" message and a Mac crash report showing it crashed in C++ Sequence::~Sequence() destructor in Mac free_list_checksum_botch() and malloc_zone_error() which is associated in other bug reports with "Incorrect checksum for freed object: probably modified after being freed." (apache/arrow#40652).

The crash does not seem to be due to too little memory since the crash also happens using mmseqs option --split-memory-limit 32G on this computer with 64 GB. The crash happens with mmseqs release 18 and release 17.

../mmseqs-r18/bin/mmseqs search msas/prof_res ../colabfold_databases/colabfold_envdb_202108_db msas/res_env msas/tmp3 --num-iterations 3 --db-load-mode 0 -a -e 0.1 --max-seqs 10000 --prefilter-mode 0 --k-score 'seq:96,prof:80' >& mmseqs2.out &

Final stack frames from Mac crash dump:

{"imageOffset":37768,"symbol":"__pthread_kill","symbolLocation":8,"imageIndex":1},
{"imageOffset":26764,"symbol":"pthread_kill","symbolLocation":296,"imageIndex":2},
{"imageOffset":494140,"symbol":"abort","symbolLocation":124,"imageIndex":3},
{"imageOffset":57716,"symbol":"malloc_vreport","symbolLocation":892,"imageIndex":4},
{"imageOffset":235860,"symbol":"malloc_zone_error","symbolLocation":100,"imageIndex":4},
{"imageOffset":114292,"symbol":"free_list_checksum_botch","symbolLocation":40,"imageIndex":4},
{"imageOffset":29176,"symbol":"small_free_list_remove_ptr_no_clear","symbolLocation":964,"imageIndex":4},
{"imageOffset":18076,"symbol":"free_small","symbolLocation":632,"imageIndex":4},
{"imageOffset":1369764,"symbol":"Sequence::~Sequence()","symbolLocation":180,"imageIndex":0},

I've attached the full mmseqs log output and the input mmseqs db files ### (prof_res) and the full Mac crash dump. Colabfold env database is the standard colabfold_envdb_202108.tar.gz (https://wwwuser.gwdg.de/~compbiol/colabfold/colabfold_envdb_202108.tar.gz). The mac is running macOS 15.6.1 model Mac Studio M2 Ultra. I did not see this on Linux, Ubuntu 24.04 with 64 GB of memory, although possibly its malloc implementation does not do the malloc free list checksum detection. My guess would be the memory corruption is on all platforms but some are more tolerant.

prefilter_crash.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions