首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用'mkfifo‘(Lustre )时,C++程序挂起

调用'mkfifo‘(Lustre )时,C++程序挂起
EN

Stack Overflow用户
提问于 2019-07-16 08:06:52
回答 1查看 163关注 0票数 3

我正在运行C++程序星号(https://github.com/alexdobin/STAR),这在我的研究领域非常常见。

当我在服务器上运行这个软件时,一切都很好。

当我在另一台服务器(FS=lustre)上运行相同的软件时,程序就冻结了。

我的命令行是:

代码语言:javascript
复制
/path/to/star/STAR-2.7.1a/source/STAR --genomeDir /path/to/reference/ \
        --readFilesIn jeter1.fastq.gz jeter1.fastq.gz \
        --readFilesCommand gunzip -c  --outReadsUnmapped None --outSAMattributes All  |\
        head -n 1000

我使用strace查看发生了什么:

代码语言:javascript
复制
   (...)

   rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
   --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=54748, si_uid=24382, si_status=0, si_utime=0, si_stime=0} ---
   getxattr("./_STARtmp//readFilesIn.info", "security.shook_state", 0x7ffd5a10b6c0, 1024) = -1 ENODATA (No data available)
   open("./_STARtmp//readFilesIn.info", O_RDONLY) = 7
   read(7, "-rw-r-----. 1 lindenbp fg0073 10"..., 8191) = 66
   read(7, "", 8191)                       = 0
   close(7)                                = 0
   write(6, "exec > \"./_STARtmp/tmp.fifo.read"..., 82) = 82
   lseek(6, 0, SEEK_SET)                   = 0
   read(6, "exec > \"./_STARtmp/tmp.fifo.read"..., 8191) = 82
   read(6, "", 8191)                       = 0
   write(3, "-rw-r-----. 1 lindenbp fg0073 10"..., 172) = 172
   close(6)                                = 0
   chmod("./_STARtmp//readsCommand_read1", 0700) = 0
   vfork()                                 = 54750
   --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=54750, si_uid=24382, si_status=0, si_utime=0, si_stime=0} ---
   getxattr("./_STARtmp/tmp.fifo.read1", "security.shook_state", 0x7ffd5a10b6c0, 1024) = -1 ENODATA (No data available)
   open("./_STARtmp/tmp.fifo.read1", O_RDONLY ######### <= FREEZES HERE
   (...)

因此,我认为,当软件创建另一个进程以对压缩的输入文件进行时,在(?):openReadsFiles.cpp#L38的某个地方冻结了。

我还尝试使用一个选项,将tmp目录指定为“/tmp”,但结果是相同的。

怎样才能解释这种行为,有什么办法解决它呢?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-22 18:51:39

我从作者https://github.com/alexdobin/STAR/issues/687那里得到了答案

该程序生成了一个shell脚本,该脚本缺少一个shebang delcaration:这阻止了fifo流的工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57052739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档