天天看點

libvirt斷開後導緻compute服務挂掉

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)

繼續閱讀