本文共 3527 字,大约阅读时间需要 11 分钟。
报错如下:
Apr 3 03:52:48 neutron neutron-linuxbridge-agent: elif tornado and tornado.gen.is_coroutine_function(f):Apr 3 03:52:48 neutron neutron-linuxbridge-agent: AttributeError: 'module' object has no attribute 'is_coroutine_function'Apr 3 03:52:48 neutron systemd: neutron-linuxbridge-agent.service: main process exited, code=exited, status=1/FAILUREApr 3 03:52:48 neutron systemd: Unit neutron-linuxbridge-agent.service entered failed state.Apr 3 03:52:48 neutron systemd: neutron-linuxbridge-agent.service failed.Apr 3 03:52:48 neutron systemd: neutron-linuxbridge-agent.service holdoff time over, scheduling restart.Apr 3 03:52:48 neutron systemd: Starting OpenStack Neutron Linux Bridge Agent...Apr 3 03:52:48 neutron neutron-enable-bridge-firewall.sh: net.bridge.bridge-nf-call-iptables = 1Apr 3 03:52:48 neutron neutron-enable-bridge-firewall.sh: net.bridge.bridge-nf-call-ip6tables = 1Apr 3 03:52:48 neutron systemd: Started OpenStack Neutron Linux Bridge Agent.Apr 3 03:52:49 neutron neutron-linuxbridge-agent: Traceback (most recent call last):Apr 3 03:52:49 neutron neutron-linuxbridge-agent: File "/usr/bin/neutron-linuxbridge-agent", line 6, in <module>Apr 3 03:52:49 neutron neutron-linuxbridge-agent: from neutron.cmd.eventlet.plugins.linuxbridge_neutron_agent import mainApr 3 03:52:49 neutron neutron-linuxbridge-agent: File "/usr/lib/python2.7/site-packages/neutron/cmd/eventlet/plugins/linuxbridge_neutron_agent.py", line 15, in <module>Apr 3 03:52:49 neutron neutron-linuxbridge-agent: import \Apr 3 03:52:49 neutron neutron-linuxbridge-agent: File "/usr/lib/python2.7/site-packages/neutron/plugins/ml2/drivers/linuxbridge/agent/linuxbridge_neutron_agent.py", line 47, in <module>Apr 3 03:52:49 neutron neutron-linuxbridge-agent: from neutron.plugins.ml2.drivers.linuxbridge.agent import arp_protectApr 3 03:52:49 neutron neutron-linuxbridge-agent: File "/usr/lib/python2.7/site-packages/neutron/plugins/ml2/drivers/linuxbridge/agent/arp_protect.py", line 229, in <module>Apr 3 03:52:49 neutron neutron-linuxbridge-agent: def ebtables(comm, table='nat'):Apr 3 03:52:49 neutron neutron-linuxbridge-agent: File "/usr/lib/python2.7/site-packages/tenacity/init.py", line 98, in wrapApr 3 03:52:49 neutron neutron-linuxbridge-agent: elif tornado and tornado.gen.is_coroutine_function(f):Apr 3 03:52:49 neutron neutron-linuxbridge-agent: AttributeError: 'module' object has no attribute 'is_coroutine_function'Apr 3 03:52:49 neutron systemd: neutron-linuxbridge-agent.service: main process exited, code=exited, status=1/FAILUREApr 3 03:52:49 neutron systemd: Unit neutron-linuxbridge-agent.service entered failed state.Apr 3 03:52:49 neutron systemd: neutron-linuxbridge-agent.service failed.现象是 neutron-linuxbridge-agent 不断重启,但是不生产日志文件,最后启动失败,坑了我2天,找到问题 "neutron-linuxbridge-agent: AttributeError: 'module' object has no attribute 'is_coroutine_function'"
找到/usr/lib/python2.7/site-packages/tenacity/init.py 里面找到这个代码注释掉。如下:以前是:def wrap(f):if asyncio and asyncio.iscoroutinefunction(f):r = AsyncRetrying(*dargs, dkw)elif tornado and tornado.gen.is_coroutine_function(f):r = TornadoRetrying(*dargs, *dkw)else:r = Retrying(dargs, dkw)return r.wraps(f) return wrap
改变后:
def wrap(f):if asyncio and asyncio.iscoroutinefunction(f):r = AsyncRetrying(*dargs, **dkw)#elif tornado and tornado.gen.is_coroutine_function(f):else: r = Retrying(*dargs, **dkw) return r.wraps(f) return wrap
转载于:https://blog.51cto.com/mrdeng/2094042