libvirt断开后导致compute服务挂掉

来源:互联网 发布:东风标致3008数据 编辑:程序博客网 时间:2024/05/21 15:03
libvirt断掉后导致compute服务挂掉,是因为在重连libvirt的时候使用
wrapped_conn = tpool.proxy_call(
                    (libvirt.virDomain, libvirt.virConnect),
                    self._connect, self.uri(), self.read_only)

该函数执行多次后卡死,使得整个compute服务卡主

这是报错的信息:
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/eventlet/hubs/hub.py", line 346, in fire_timers
    timer()
  File "/usr/lib/python2.6/site-packages/eventlet/hubs/timer.py", line 56, in __call__
    cb(*args, **kw)
  File "/usr/lib/python2.6/site-packages/eventlet/semaphore.py", line 121, in _do_acquire
    waiter.switch()
error: cannot switch to a different thread

暂时修改CONF.libvirt_nonblocking=false可避免
或者改为:

wrapped_conn = tpool.proxy_call(
                    (libvirt.virDomain, libvirt.virConnect),
                    self._connect, self.uri(), self.read_only,nonblocking=True)
0 0
原创粉丝点击