Open yurivict opened 4 months ago
When making the test data, tabix -p bed empty.bed.gz
has failed because empty.bed.gz.tbi already exists. The subsequent errors are because other test data files do not exist due to this make
failure.
You do not say what you have done to investigate why empty.bed.gz.tbi already exists or why the Makefile rules do not avoid rebuilding it. This code has not changed substantially for the last several releases, and it works for me on FreeBSD 14.
You do not say whether you have run these tests successfully previously or whether this is a newly encountered problem.
The main scenario I can think of in which this file could exist when tabix
is run but not exist when make
evaluates dependencies is if you are running the Python tests in parallel and multiple makes are trying to create the test data at once. You do not say whether you are running tests in parallel.
43c10664834cf3914000a744e6057826c6a6fa65 adds --force
to avoid this particular problem, but there are surely also other race conditions in these makefiles. While it would be possible to recode test data creation to create the final outputs atomically or to prevent parallel makes by using a file system mutex, IMHO that's not really worthwhile — really each subdirectory's test data creation is just not parallelisable.
If the Python tests are to be run in parallel, the recommended approach would be to pre-create the test data beforehand by running make
once for each directory:
make -C tests/pysam_data # or gmake as appropriate
make -C tests/cbcf_data
make -C tests/tabix_data
Version: 0.22.1 Python-3.9 FreeBSD 14.0