【问题标题】:gethostbyname fail after switching internet connections切换互联网连接后 gethostbyname 失败
【发布时间】:2015-09-12 11:50:47
【问题描述】:

在切换 wifi 主机后运行 MPI 作业时,我经常(但不总是)收到以下错误。

Fatal error in MPI_Init: Other MPI error, error stack:
MPIR_Init_thread(498)..............: 
MPID_Init(187).....................: channel initialization failed
MPIDI_CH3_Init(89).................: 
MPID_nem_init(320).................: 
MPID_nem_tcp_init(171).............: 
MPID_nem_tcp_get_business_card(418): 
MPID_nem_tcp_init(377).............: gethostbyname failed, MacBook-Pro.local     (errno 1)

咖啡店一切正常,然后当我回到家时,出现上述错误。其他一切都没有改变。

我检查了 /etc/hosts 和 /private/etc/hosts 文件,它们看起来还不错 -

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1       localhost
255.255.255.255 broadcasthost

我可以 ping 本地主机,所以问题不完全是本地主机没有解决。

重新启动总是能解决问题,但是我可以做一些简单的事情来“重置”我的系统,以便它识别本地主机吗?

我无法访问我正在运行的代码中的 MPI 初始化例程的详细信息,也没有对 gethostname 进行任何显式调用。

我正在使用 MPICH 3.1.4(2015 年 2 月构建)并且正在运行 OSX 10.10.3

【问题讨论】:

  • 您是在查找 localhost,还是在查找 macbook-pro.local? MPICH 是否运行本地守护程序?如果是这样,您是否尝试过重新启动守护程序(也许它缓存了旧的 DNS 服务器 ip 等)
  • 谢谢!如何重新启动本地守护程序?至于本地主机,我做了:ping localhost,并得到了回应。

标签: macos mpi osx-yosemite


【解决方案1】:

答案很简单——这似乎是可行的。

我编辑了文件/etc/hosts(或/private/etc/hosts,在OSX中)并添加了行

127.0.0.1   macbook-pro.local

所以现在我的主机文件看起来像:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1   localhost
255.255.255.255 broadcasthost
127.0.0.1   macbook-pro.local

【讨论】:

  • 我刚刚在一台新笔记本电脑上遇到了这个问题,因此使用了我最初在上面发布的修复程序。它有效,因此认为这是解决此问题的正确方法。
【解决方案2】:

我们在 CI 服务器上间歇性地遇到此问题。似乎将环境变量 MPICH_INTERFACE_HOSTNAME 设置为 localhost 有所帮助。

【讨论】:

    猜你喜欢
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-16
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    相关资源
    最近更新 更多