切换互联网连接后gethostbyname失败

时间:2015-06-25 18:10:26

标签: macos mpi osx-yosemite

我经常(但并不总是)在切换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 localhost,所以问题并不完全是localhost没有解决。

重新启动始终可以解决问题,但是我能做些什么来简化"重置"我的系统,以便它识别本地主机?

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

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

2 个答案:

答案 0 :(得分:8)

答案很简单 - 这似乎是有效的。

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

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

答案 1 :(得分:1)

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