描述:
在使用 basevar 工具时,观察到系统内存占用非常低 (30G / 756G) 左右,但程序偶尔会抛出 std::bad_alloc 异常,提示内存分配失败。实际上在我同时并发的十几个 basevar 任务中,大部分都能跑完,但始终会有一两个出现内存分配错误。
以下是详细信息和复现步骤:
复现步骤
- 运行以下命令:
./bin/basevar basetype -t 20 -L output/calls/all.bam.list \
--filename-has-samplename -R data/reference/Homo_sapiens_assembly38.fasta \
-r chr9:1-5000000 --min-af=0.001 \
--output-vcf output/calls/chr9_1_5000000.vcf.gz \
--output-cvg output/calls/chr9_1_5000000.cvg.tsv.gz \
> log/20250114_075951/chr9_1_5000000.log
- 程序运行一段时间后,抛出以下错误:
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
/usr/bin/bash: line 1: 154874 Aborted ./bin/basevar basetype -t 20 -L output/calls/all.bam.list --filename-has-samplename -R data/reference/Homo_sapiens_assembly38.fasta -r chr9:1-5000000 --min-af=0.001 --output-vcf output/calls/chr9_1_5000000.vcf.gz --output-cvg output/calls/chr9_1_5000000.cvg.tsv.gz > log/20250114_075951/chr9_1_5000000.log
预期行为
程序应正常运行,完成数据处理任务,而不会因内存分配失败而崩溃。
实际行为
程序偶尔会抛出 std::bad_alloc 异常,尽管系统内存占用非常低。