我在本地使用 Ubuntu 20.04,没有远程访问或任何东西。尽管如此,每当我从终端启动
paraview
,或者当我运行一个使用 MPI 的应用程序时(我认为如果它调用 MPI_Init()
就足够了),我就会收到错误消息
Invalid MIT-MAGIC-COOKIE-1 key
我该如何解决这个问题?
MPI 实现:打开 MPI 4.0.3
ParaView 版本:5.7.0
问题是由
libhwloc
库引起的,OpenRTE
(OpenMPI组件)使用它在并行进程启动期间探索节点的硬件拓扑。当 hwloc_topology_load()
被调用时,libhwloc
遍历其所有可用组件,这些组件作为插件实现。这些组件之一,gl
,负责收集有关系统图形设备的信息,并使用像 XOpenDisplay()
这样的 X11 调用,如果连接失败,它会生成错误消息“Invalid MIT-MAGIC-COOKIE-1 key”到 X11 服务器。
在许多情况下,HPC 集群不需要此 gl 组件,可以通过设置
HWLOC_COMPONENTS
环境变量将其排除,从而安全地禁用它:
export HWLOC_COMPONENTS="-gl"
我发现
rm ~/.Xauthority
然后注销并重新登录。
查看xinit错误的解决方案:https://github.com/dnschneid/crouton/issues/197
更多关于为什么会出现这种情况:https://askubuntu.com/a/300737/1057634
根据 man pages,当您运行涉及远程服务器的 GUI 应用程序时,以及当您使用 ssh -X 进行 ssh 时,~/.Xauthority 文件会自动创建(但如果您只是 ssh,则会出现错误说你需要一个 .Xauthority 文件才能连接到服务器)。