TypeError: connect_volume() takes exactly 3 arguments (4 given) for NFS Cinder drivers

Bug #1675584 reported by Apoorva Deshpande
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
High
Matt Riedemann

Bug Description

NFS driver Cinder CI jobs failed on following error

2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server [req-70f771a4-6cd2-497d-8428-45ed14caa416 tempest-VolumesAdminNegativeTest-1024673784 tempest-VolumesAdminNegativeTest-1024673784] Exception during message handling
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server Traceback (most recent call last):
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/server.py", line 157, in _process_incoming
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server res = self.dispatcher.dispatch(message)
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py", line 213, in dispatch
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server return self._do_dispatch(endpoint, method, ctxt, args)
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py", line 183, in _do_dispatch
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server result = func(ctxt, **new_args)
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/opt/stack/nova/nova/exception_wrapper.py", line 75, in wrapped
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server function_name, call_dict, binary)
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server self.force_reraise()
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server six.reraise(self.type_, self.value, self.tb)
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/opt/stack/nova/nova/exception_wrapper.py", line 66, in wrapped
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server return f(self, context, *args, **kw)
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/opt/stack/nova/nova/compute/manager.py", line 215, in decorated_function
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server kwargs['instance'], e, sys.exc_info())
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server self.force_reraise()
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server six.reraise(self.type_, self.value, self.tb)
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/opt/stack/nova/nova/compute/manager.py", line 203, in decorated_function
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server return function(self, context, *args, **kwargs)
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/opt/stack/nova/nova/compute/manager.py", line 4805, in attach_volume
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server do_attach_volume(context, instance, driver_bdm)
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py", line 271, in inner
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server return f(*args, **kwargs)
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/opt/stack/nova/nova/compute/manager.py", line 4803, in do_attach_volume
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server bdm.destroy()
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server self.force_reraise()
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server six.reraise(self.type_, self.value, self.tb)
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/opt/stack/nova/nova/compute/manager.py", line 4800, in do_attach_volume
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server return self._attach_volume(context, instance, driver_bdm)
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/opt/stack/nova/nova/compute/manager.py", line 4823, in _attach_volume
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server self.volume_api.unreserve_volume(context, bdm.volume_id)
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server self.force_reraise()
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server six.reraise(self.type_, self.value, self.tb)
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/opt/stack/nova/nova/compute/manager.py", line 4815, in _attach_volume
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server do_driver_attach=True)
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/opt/stack/nova/nova/virt/block_device.py", line 48, in wrapped
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server ret_val = method(obj, context, *args, **kwargs)
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/opt/stack/nova/nova/virt/block_device.py", line 282, in attach
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server connector)
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server self.force_reraise()
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server six.reraise(self.type_, self.value, self.tb)
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/opt/stack/nova/nova/virt/block_device.py", line 273, in attach
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server device_type=self['device_type'], encryption=encryption)
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 1204, in attach_volume
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server self._connect_volume(connection_info, disk_info, instance)
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 1145, in _connect_volume
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server vol_driver.connect_volume(connection_info, disk_info, instance)
2017-03-23 11:12:34.533 3875 ERROR oslo_messaging.rpc.server TypeError: connect_volume() takes exactly 3 arguments (4 given)

On IRC I got to know that https://review.openstack.org/#/c/438970/ could be the culprit

Failure CI logs are http://openstack-ci.tintri.com/tintri/refs-changes-59-448159-4/logs/screen-n-cpu.log.txt

Revision history for this message
Apoorva Deshpande (apoorvad) wrote :

One more Cinder CI failed with the same conect_volume() error http://78.46.57.153:8081/refs-changes-59-448159-4/logs/screen-n-cpu.log.txt

Matt Riedemann (mriedem)
Changed in nova:
assignee: nobody → Matt Riedemann (mriedem)
importance: Undecided → High
status: New → Confirmed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (master)

Fix proposed to branch: master
Review: https://review.openstack.org/449362

Changed in nova:
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

Reviewed: https://review.openstack.org/449362
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=de7c0594d19666bf20755dd0b8a040eb6a1217c0
Submitter: Jenkins
Branch: master

commit de7c0594d19666bf20755dd0b8a040eb6a1217c0
Author: Matt Riedemann <email address hidden>
Date: Thu Mar 23 23:33:45 2017 +0000

    Revert "libvirt: Pass instance to connect_volume and ..."

    This reverts commit f0153fa4c87528e1dcbda8cba55d34ab7aec4e7a.

    This broke a whole set of FS-based volume drivers since it
    didn't change the method signatures in those drivers to take
    the new instance argument.

    I was working on adding them but then just decided this
    isn't even used right now so it's faster to revert.

    When this is added back in, I want to see the
    LibvirtBaseVolumeDriver class turned into an ABC and
    the connect_volume and disconnect_volume methods turned
    into abstractmethods in LibvirtBaseVolumeDriver so this
    kind of thing does not happen again.

    Change-Id: If1ee6d6e4004750f80424ec54d7dabc564ec9e06
    Closes-Bug: #1675584

Changed in nova:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/nova 16.0.0.0b1

This issue was fixed in the openstack/nova 16.0.0.0b1 development milestone.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers