Comment 0 for bug 1637671

Revision history for this message
Richard G. Pioso (richard.pioso) wrote :

Seen in stable/newton.

The DRAC driver's get_bios_config() vendor_passthru method mistakenly treats the value returned by python-dracclient's list_bios_settings() as containing namedtuples. When it calls the namedtuple _asdict() method, an AttributeError exception is raised.

This is a regression from stable/mitaka.

It shows up in the ironic-conductor.log as:

2016-10-27 16:04:13.147 1573 ERROR ironic.drivers.base [req-45370baa-7511-4901-9784-da5a90af4f8b - - - - -] vendor_passthru failed with method get_bios_config
2016-10-27 16:04:13.147 1573 ERROR ironic.drivers.base Traceback (most recent call last):
2016-10-27 16:04:13.147 1573 ERROR ironic.drivers.base File "/usr/lib/python2.7/site-packages/ironic/drivers/base.py", line 692, in passthru_handler
2016-10-27 16:04:13.147 1573 ERROR ironic.drivers.base return func(*args, **kwargs)
2016-10-27 16:04:13.147 1573 ERROR ironic.drivers.base File "/usr/lib/python2.7/site-packages/ironic/drivers/modules/drac/vendor_passthru.py", line 61, in get_bios_config
2016-10-27 16:04:13.147 1573 ERROR ironic.drivers.base bios_attrs[name] = bios_attr._asdict()
2016-10-27 16:04:13.147 1573 ERROR ironic.drivers.base AttributeError: 'BIOSStringAttribute' object has no attribute '_asdict'
2016-10-27 16:04:13.147 1573 ERROR ironic.drivers.base
2016-10-27 16:04:13.153 1573 DEBUG ironic.conductor.task_manager [req-45370baa-7511-4901-9784-da5a90af4f8b - - - - -] Successfully released exclusive lock for calling vendor passthru on node c54ad36d-5e2e-4593-9033-9996621803bb (lock was held 8.09 sec) release_resources /usr/lib/python2.7/site-packages/ironic/conductor/task_manager.py:331
2016-10-27 16:04:13.153 1573 ERROR oslo_messaging.rpc.server [req-45370baa-7511-4901-9784-da5a90af4f8b - - - - -] Exception during message handling
2016-10-27 16:04:13.153 1573 ERROR oslo_messaging.rpc.server Traceback (most recent call last):
2016-10-27 16:04:13.153 1573 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/server.py", line 133, in _process_incoming
2016-10-27 16:04:13.153 1573 ERROR oslo_messaging.rpc.server res = self.dispatcher.dispatch(message)
2016-10-27 16:04:13.153 1573 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 150, in dispatch
2016-10-27 16:04:13.153 1573 ERROR oslo_messaging.rpc.server return self._do_dispatch(endpoint, method, ctxt, args)
2016-10-27 16:04:13.153 1573 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 121, in _do_dispatch
2016-10-27 16:04:13.153 1573 ERROR oslo_messaging.rpc.server result = func(ctxt, **new_args)
2016-10-27 16:04:13.153 1573 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/ironic_lib/metrics.py", line 61, in wrapped
2016-10-27 16:04:13.153 1573 ERROR oslo_messaging.rpc.server result = f(*args, **kwargs)
2016-10-27 16:04:13.153 1573 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/server.py", line 199, in inner
2016-10-27 16:04:13.153 1573 ERROR oslo_messaging.rpc.server return func(*args, **kwargs)
2016-10-27 16:04:13.153 1573 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/ironic/conductor/manager.py", line 271, in vendor_passthru
2016-10-27 16:04:13.153 1573 ERROR oslo_messaging.rpc.server ret = vendor_func(task, **info)
2016-10-27 16:04:13.153 1573 ERROR oslo_messaging.rpc.server File "/usr/lib/python2.7/site-packages/ironic/drivers/base.py", line 699, in passthru_handler
2016-10-27 16:04:13.153 1573 ERROR oslo_messaging.rpc.server raise exception.VendorPassthruException(message=e)
2016-10-27 16:04:13.153 1573 ERROR oslo_messaging.rpc.server VendorPassthruException: 'BIOSStringAttribute' object has no attribute '_asdict'