gpt4 book ai didi

python - zmq.Context() 在启动几分钟后挂起

转载 作者:太空宇宙 更新时间:2023-11-04 04:16:42 24 4
gpt4 key购买 nike

在一个非常简单的非工作示例中,我这样做:

import zmq
ctx = zmq.Context()

python3 -c "import zmq; ctx = zmq.Context()",分别。

当我的机器运行几分钟后,它运行良好。但是,在启动后(大约 2 分钟)它不会。它只是阻塞并且是不间断的(即使 Ctrl+C 也不起作用)。

在机器正常运行的最初几分钟内,有什么想法可能会出现冲突吗?

信息:libzmq5 版本为 4.2.5 和 pyzmq 17.0.0。

编辑:与 C example 相同的行为.

Edit2:感谢 strace,我知道它卡在系统调用 getrandom( 上。据我所知,它似乎请求 /dev/random 没有获得足够的熵,而不是使用 /dev/urandom。实际上,cat/dev/random 也会阻塞,而 cat/dev/urandom 没有。

最佳答案

你确定它真的卡在那里吗?我有同样的问题,但我一直认为它在第一次与加密连接时挂起。

问题是在启动时内核没有熵并且从/dev/random 或/dev/urandom 读取挂起。在使用 zmq 之前,您需要在启动时创建一些熵。通常情况下,随机种子会在关机时存储,并在启动时用于播种熵。确保在使用 zmq 之前发生了这种情况并且它有效。

在我的例子中,我必须使用 havegd 向系统添加熵。

注意:熵必须在 zmq 启动之前存在。不要问我为什么。我也有兴趣知道这一点。

关于python - zmq.Context() 在启动几分钟后挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51302854/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com