在 SLURM 上通过 Nextflow 运行的命令出现错误代码 140

在 SLURM 上通过 Nextflow 运行的命令出现错误代码 140

[注:问题经过大量编辑,以对应实际问题]

我正在尝试调试仅在特定条件下失败的命令。失败的退出代码为 140,但我没有其他信息。

此命令是cat in_file | tr "\t" "\n" > out_file,并且它是下一个流程脚本,该脚本又在集群上运行斯拉普调度程序。

由于该命令是trGNU coreutils 的一部分,因此我检查了手册页信息,只提到“退出状态为零表示成功,非零值表示失败。”,但这不是标准错误errno.h代码

答案1

您看到的错误代码不是来自trnextflow 而是来自 SLURM。快速搜索表明它确实是 SLURM。例如,请参见此处:

  • 作业/进程未获得足够的内存或时间:在大型样本或数据集上运行管道可能需要更多内存或更长的时间限制。如果报告正确,管道将显示错误状态 140(对于 SGE 或 SLURM 环境);但是,内存问题可能表现为多种形式,并且相关错误消息并不总是很清楚。在此示例中,进程 PairedEndHisat 因内存不足而失败,但指示一般错误状态 (1):

或者,这里

140 作业超出了“挂钟”时间限制(而不是 CPU 时间限制)。

我对此了解不多,所以我不知道谁是对的。但是,这至少给你一个大致的方向:这个过程是否需要很长时间?或者,由于你正在尝试写入文件,你是否有足够的磁盘空间来实际写入?

相关内容