Bug Report
sist hangs indefinitely on linux-aarch64 (Ubuntu ARM) during regression testing. The hang is inside the third-party irf binary, not in sist's code.
To Reproduce
YAML configuration
matrix:
os: [ubuntu-26.04, ubuntu-26.04-arm, macos-26-intel, macos-26]
CLI command used
conda build conda-recipe --override-channels -c conda-forge -c bioconda --no-anaconda-upload
Actual output
On ubuntu-26.04-arm only, pytest hangs indefinitely in the cruciform/competition tests until the job times out. A bounded subprocess.run(..., timeout=...) around the irf call confirmed a subprocess.TimeoutExpired inside Popen._wait()/waitpid(), the hang is inside the irf child process itself.
Expected output
Completes in ~30s, all tests passing, same as linux-64/macOS.
Environment and Versions
- Operating System:
ubuntu-26.04-arm (linux-aarch64)
- Package Version:
sist 1.0.0
- Python Version:
3.14.7
- Package list:
irf 3.09-h661a7b0_0 (bioconda)
Additional Context
Root cause: upstream IRF (Benson-Genomics-Lab/IRF, tag IRFv3.09), irfrun.h line 215, stores getc()'s result in a char instead of an int. On Linux aarch64, char defaults to unsigned, so the EOF check (-1) never matches and the read loop spins forever. linux-64 and osx-arm64 keep char signed, so they're unaffected.
Bug Report
sisthangs indefinitely onlinux-aarch64(Ubuntu ARM) during regression testing. The hang is inside the third-partyirfbinary, not insist's code.To Reproduce
YAML configuration
CLI command used
Actual output
On
ubuntu-26.04-armonly,pytesthangs indefinitely in the cruciform/competition tests until the job times out. A boundedsubprocess.run(..., timeout=...)around theirfcall confirmed asubprocess.TimeoutExpiredinsidePopen._wait()/waitpid(), the hang is inside theirfchild process itself.Expected output
Completes in ~30s, all tests passing, same as
linux-64/macOS.Environment and Versions
ubuntu-26.04-arm(linux-aarch64)sist 1.0.03.14.7irf 3.09-h661a7b0_0(bioconda)Additional Context
Root cause: upstream IRF (
Benson-Genomics-Lab/IRF, tagIRFv3.09),irfrun.hline 215, storesgetc()'s result in acharinstead of anint. On Linuxaarch64,chardefaults to unsigned, so the EOF check (-1) never matches and the read loop spins forever.linux-64andosx-arm64keepcharsigned, so they're unaffected.