AMQP 2.0 prevents services from starting
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Barbican |
New
|
Undecided
|
Unassigned | ||
Glance |
New
|
Undecided
|
Unassigned | ||
Ironic |
New
|
Undecided
|
Unassigned | ||
OpenStack Compute (nova) |
New
|
Undecided
|
Unassigned | ||
OpenStack Identity (keystone) |
New
|
Undecided
|
Unassigned | ||
neutron |
New
|
Undecided
|
Unassigned | ||
oslo.messaging |
New
|
Undecided
|
Unassigned |
Bug Description
We are running nova from the stable/mitaka branch (not using packages).
Our build process has flagged this. Previously, when we've built, we've used the requirements.txt file to pull in dependencies, and one of the dependencies pulls in AMQP.
Initial investigation leads us to believe that oslo.messaging pulls in AMQP as a dependency. It looks to be pulling in the latest version (2.0). Our previous successful builds show AMQP of 1.4.9, which is fully functional.
2.0 completely breaks, for example, the nova-compute service with the following trace:
2016-05-30 01:04:58.192 11335 CRITICAL nova [req-992ce9e3-
2016-05-30 01:04:58.192 11335 ERROR nova Traceback (most recent call last):
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova sys.exit(main())
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova db_allowed=
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova db_allowed=
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova self.conductor_
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova timeout=timeout)
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova return cctxt.call(context, 'ping', arg=arg_p)
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova retry=self.retry)
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova timeout=timeout, retry=retry)
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova retry=retry)
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova msg.update(
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova conn = self._get_
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova purpose=purpose)
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova self.connection = connection_
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova return self.connection
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova self.ensure_
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova self.ensure(
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova ret, channel = autoretry_method()
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova return fun(*args, **kwargs)
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova self.revive(
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova chan = self.transport.
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova return connection.
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova channel.open()
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova spec.Channel.Open, 's', ('',), wait=spec.
2016-05-30 01:04:58.192 11335 ERROR nova File "/opt/mhos/
2016-05-30 01:04:58.192 11335 ERROR nova conn._frame_
2016-05-30 01:04:58.192 11335 ERROR nova AttributeError: 'Connection' object has no attribute '_frame_writer'
2016-05-30 01:04:58.192 11335 ERROR nova
Investigation also indicates this impacts other services. I've isolated builds into virtualenvs to prevent external environment from being a concern.
Further investigation shows this impacts ALL projects. Please investigate as soon as possible.