Zookeeper servicegroup driver crashes
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Low
|
Sean Dague |
Bug Description
Zookeeper driver is based on zookeeper and evzookeeper modules. The latter
is the source of nasty crash, which is well visible on nova conductor. To
reproduce it is enough to enable zookeeper in nova.conf, provide
configuration for the zookeeper service address and stack the thing. The
traceback:
2015-04-14 13:23:22.622 TRACE nova Traceback (most recent call last):
2015-04-14 13:23:22.622 TRACE nova File "/usr/local/
2015-04-14 13:23:22.622 TRACE nova sys.exit(main())
2015-04-14 13:23:22.622 TRACE nova File "/opt/stack/
2015-04-14 13:23:22.622 TRACE nova manager=
2015-04-14 13:23:22.622 TRACE nova File "/opt/stack/
2015-04-14 13:23:22.622 TRACE nova db_allowed=
2015-04-14 13:23:22.622 TRACE nova File "/opt/stack/
2015-04-14 13:23:22.622 TRACE nova self.servicegro
2015-04-14 13:23:22.622 TRACE nova File "/opt/stack/
2015-04-14 13:23:22.622 TRACE nova *args, **kwargs)
2015-04-14 13:23:22.622 TRACE nova File "/usr/local/
2015-04-14 13:23:22.622 TRACE nova return import_
2015-04-14 13:23:22.622 TRACE nova File "/usr/local/
2015-04-14 13:23:22.622 TRACE nova __import__(mod_str)
2015-04-14 13:23:22.622 TRACE nova File "/opt/stack/
2015-04-14 13:23:22.622 TRACE nova evzookeeper = importutils.
2015-04-14 13:23:22.622 TRACE nova File "/usr/local/
2015-04-14 13:23:22.622 TRACE nova return import_
2015-04-14 13:23:22.622 TRACE nova File "/usr/local/
2015-04-14 13:23:22.622 TRACE nova __import_
2015-04-14 13:23:22.622 TRACE nova File "/usr/local/
2015-04-14 13:23:22.622 TRACE nova from evzookeeper import utils
2015-04-14 13:23:22.622 TRACE nova File "/usr/local/
2015-04-14 13:23:22.622 TRACE nova class _SocketDuckForF
2015-04-14 13:23:22.622 TRACE nova AttributeError: 'module' object has no attribute '_SocketDuckForFd'
The root cause of the problem is the change, which have a place in module
eventlet 0.17, which evzookeeper module is depend on. Because of the change the way eventlet.greenio is exposed there is no way to reach the class
_SocketDuckForFd other way than explicitly importing it via
eventlet.
Definitely solution for this problem might go upstream to the evzookeeper
author, however the development of evzookeeper module seems stalled (no
activity for last 2 years), maybe it's worth to consider changing the zk
driver implementation to use different zk module (kazoo seems quite active).
Downgrading eventlet was no option for me, since keystone requires version
>=0.17.
description: | updated |
Changed in nova: | |
status: | New → Confirmed |
importance: | Undecided → Low |
Changed in nova: | |
assignee: | Mark McLoughlin (markmc) → Sean Dague (sdague) |
Fix proposed to branch: master /review. openstack. org/246343
Review: https:/