HNAS driver does not validate if snapshot export exists when updating access rule

Bug #1660420 reported by Rodrigo Barbieri
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Shared File Systems Service (Manila)
Fix Released
Medium
Rodrigo Barbieri

Bug Description

Whenever trying to update access rules for a given mountable snapshot in HNAS driver, the lower SSH layer throws error below that export does not exist. This should be handled in the top layer of the driver, by checking if it exists before trying to update its access rules.

2017-01-30 13:34:11.762 ERROR manila.share.manager [req-fa1d0cf8-40d4-45d3-b34d-13bf9f446a72 6a08846c319c4ae5aa3c09402e88a450 649c607e28c244d2b58b22840c2214af] Failed t
o remove access rules for snapshot 4ac1e629-0caa-4d21-b44a-bee5f95621ce.
2017-01-30 13:34:11.762 TRACE manila.share.manager Traceback (most recent call last):
2017-01-30 13:34:11.762 TRACE manila.share.manager File "/opt/stack/manila/manila/share/manager.py", line 2667, in delete_snapshot
2017-01-30 13:34:11.762 TRACE manila.share.manager share_server=share_server)
2017-01-30 13:34:11.762 TRACE manila.share.manager File "/opt/stack/manila/manila/share/snapshot_access.py", line 53, in update_access_rules
2017-01-30 13:34:11.762 TRACE manila.share.manager share_server=share_server,
2017-01-30 13:34:11.762 TRACE manila.share.manager File "/usr/local/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py", line 271, in inner
2017-01-30 13:34:11.762 TRACE manila.share.manager return f(*args, **kwargs)
2017-01-30 13:34:11.762 TRACE manila.share.manager File "/opt/stack/manila/manila/share/snapshot_access.py", line 47, in _update_access_rules_locked
2017-01-30 13:34:11.762 TRACE manila.share.manager return self._update_access_rules(*args, **kwargs)
2017-01-30 13:34:11.762 TRACE manila.share.manager File "/opt/stack/manila/manila/share/snapshot_access.py", line 126, in _update_access_rules
2017-01-30 13:34:11.762 TRACE manila.share.manager share_server=share_server)
2017-01-30 13:34:11.762 TRACE manila.share.manager File "/opt/stack/manila/manila/share/drivers/hitachi/hnas/driver.py", line 1246, in snapshot_update_access
2017-01-30 13:34:11.762 TRACE manila.share.manager snapshot_id=hnas_snapshot_id)
2017-01-30 13:34:11.762 TRACE manila.share.manager File "/opt/stack/manila/manila/share/drivers/hitachi/hnas/ssh.py", line 159, in update_nfs_access_rule
2017-01-30 13:34:11.762 TRACE manila.share.manager self._execute(command)
2017-01-30 13:34:11.762 TRACE manila.share.manager File "/opt/stack/manila/manila/utils.py", line 459, in _wrapper
2017-01-30 13:34:11.762 TRACE manila.share.manager return r.call(f, *args, **kwargs)
2017-01-30 13:34:11.762 TRACE manila.share.manager File "/usr/local/lib/python2.7/dist-packages/retrying.py", line 206, in call
2017-01-30 13:34:11.762 TRACE manila.share.manager return attempt.get(self._wrap_exception)
2017-01-30 13:34:11.762 TRACE manila.share.manager File "/usr/local/lib/python2.7/dist-packages/retrying.py", line 247, in get
2017-01-30 13:34:11.762 TRACE manila.share.manager six.reraise(self.value[0], self.value[1], self.value[2])
2017-01-30 13:34:11.762 TRACE manila.share.manager File "/usr/local/lib/python2.7/dist-packages/retrying.py", line 200, in call
2017-01-30 13:34:11.762 TRACE manila.share.manager attempt = Attempt(fn(*args, **kwargs), attempt_number, False)
2017-01-30 13:34:11.762 TRACE manila.share.manager File "/opt/stack/manila/manila/share/drivers/hitachi/hnas/ssh.py", line 525, in _execute
2017-01-30 13:34:11.762 TRACE manila.share.manager check_exit_code=True)
2017-01-30 13:34:11.762 TRACE manila.share.manager File "/usr/local/lib/python2.7/dist-packages/oslo_concurrency/processutils.py", line 524, in ssh_execute
2017-01-30 13:34:11.762 TRACE manila.share.manager cmd=sanitized_cmd)
2017-01-30 13:34:11.762 TRACE manila.share.manager ProcessExecutionError: Unexpected error while running command.
2017-01-30 13:34:11.762 TRACE manila.share.manager Command: ssc 127.0.0.1 console-context --evs 3 nfs-export mod -c 127.0.0.1 /snapshots/4ac1e629-0caa-4d21-b44a-bee5f95621ce
2017-01-30 13:34:11.762 TRACE manila.share.manager Exit code: 1
2017-01-30 13:34:11.762 TRACE manila.share.manager Stdout: u''
2017-01-30 13:34:11.762 TRACE manila.share.manager Stderr: u"NFS Export Modify: Export '/snapshots/4ac1e629-0caa-4d21-b44a-bee5f95621ce' does not exist.\n"
2017-01-30 13:34:11.762 TRACE manila.share.manager

Changed in manila:
importance: Undecided → Medium
milestone: none → ocata-rc1
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to manila (master)

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

Changed in manila:
assignee: nobody → Alyson (alyson-rodrigues-rosa)
status: New → In Progress
Changed in manila:
assignee: Alyson (alyson-rodrigues-rosa) → Rodrigo Barbieri (rodrigo-barbieri2010)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to manila (master)

Reviewed: https://review.openstack.org/428077
Committed: https://git.openstack.org/cgit/openstack/manila/commit/?id=c4b65df374562540f83f6478e51ce2f2949aab73
Submitter: Jenkins
Branch: master

commit c4b65df374562540f83f6478e51ce2f2949aab73
Author: Alyson Rosa <email address hidden>
Date: Wed Feb 1 14:09:32 2017 -0200

    Fix HNAS driver always handling mountable snapshots

    HNAS driver always handles snapshots as if mount_snaphot_support
    is always True.
    The driver always create exports in snapshot_create and tries to
    delete it in snapshot_delete. Also, the driver tries to add rules
    for exports in snapshot_update_access without checking if the export
    exists.

    Fixing it by checking the key 'mount_snapshot_support' in shares and
    checking if the snapshot has an export before adding or removing
    rules.

    Change-Id: If25d68d04400f0e9015f6ad6aff845f9c5d47f94
    Closes-bug: #1660420
    Closes-bug: #1660421

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

This issue was fixed in the openstack/manila 4.0.0.0rc1 release candidate.

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

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.