通过ssh运行时出现Python分段故障



当我从终端(命令行(运行多处理python程序时,一切都很好。

$ /home/florian/tests/run_tests.sh -d -w

脚本run_tests.sh只是Python调用的包装器(设置变量并调用Python(

与我使用SSH从另一个框运行的命令完全相同时,几乎所有任务(进程(都会因"分段故障"而失败(189个任务中的165个[87%](:

$ ssh -o StrictHostKeyChecking=no florian@remote '/home/florian/tests/run_tests.sh -d -w'

环境:

OS: SLES11
Python: 3.8.1
GNU bash, version 3.2.57(2)-release (x86_64-suse-linux-gnu)
Number of CPUs: 24

core file size          (blocks, -c) 1
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 1029396
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) 112008408
open files                      (-n) 32768
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 32768
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1029396
virtual memory          (kbytes, -v) 108780880
file locks                      (-x) unlimited

我甚至试图将使用的CPU数量限制为1-仍然无法使用

import multiprocessing as mp
#pool = mp.Pool(mp.cpu_count())
pool = mp.Pool(1)
  • 你知道它为什么会这样做吗:在本地工作,在ssh上失败
  • 你知道任何SSH设置可以帮助内存分配吗(如果这是一个问题(

提前感谢,兹比格涅夫

对于任何将面临类似问题的人:问题出现在环境变量中。

当通过SSH连接时,只剩下一些变量——其余的都被清除了(请参阅SSH描述中的详细信息(。

因此,在包装器脚本中,我不得不使用export LD_LIBRARY_PATH——感谢我的同事Francois提供的非常有价值的提示:(

愚蠢的错误,但是。。。也许有人从这个答案中受益。

最新更新