Huawei driver encode_name uses unstable hash() for ids

Bug #1658725 reported by Eric Harney
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Cinder
Fix Released
Undecided
Yingzhe Zeng

Bug Description

encode_name() in huawei_utils.py uses hash() to generate "stable" identifiers for volumes, snapshots, etc.

This is not a safe thing to do, hash() generates different values for different instances of python.

Unit tests only pass because we fix PYTHONHASHSEED=0 in tox.ini. And the tests already have an odd workaround to make this pass on py27 and py3*, which return different values.

http://git.openstack.org/cgit/openstack/cinder/tree/cinder/tests/unit/volume/drivers/huawei/test_huawei_drivers.py?h=9.1.1#n2185

http://git.openstack.org/cgit/openstack/cinder/tree/cinder/volume/drivers/huawei/huawei_utils.py?h=9.1.1#n31

This needs to be reworked.

Eric Harney (eharney)
tags: added: drivers huawei
Changed in cinder:
status: New → Confirmed
TommyLike (hu-husheng)
Changed in cinder:
assignee: nobody → TommyLike (hu-husheng)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to cinder (master)

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

Changed in cinder:
status: Confirmed → In Progress
Changed in cinder:
assignee: TommyLike (hu-husheng) → Yingzhe Zeng (zengyingzhe)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

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

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on cinder (master)

Change abandoned by TommyLike (<email address hidden>) on branch: master
Review: https://review.openstack.org/465789
Reason: yingzhe will handle this

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to cinder (master)

Reviewed: https://review.openstack.org/490821
Committed: https://git.openstack.org/cgit/openstack/cinder/commit/?id=36471cfc0d93ae79bbbff85b15714f3405fa2796
Submitter: Jenkins
Branch: master

commit 36471cfc0d93ae79bbbff85b15714f3405fa2796
Author: zengyingzhe <email address hidden>
Date: Fri Aug 4 18:19:52 2017 +0800

    Eliminate randomness in encode_name&encode_host_name methods

    Use 'md5' instead of 'hash' to generate a
    shorter lun name and host name for Huawei backend.

    Change-Id: Icfac5f34d3caaf6019e39802e5da44428593d927
    Closes-Bug: #1658725

Changed in cinder:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to cinder (stable/ocata)

Fix proposed to branch: stable/ocata
Review: https://review.openstack.org/492757

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to cinder (driverfixes/newton)

Fix proposed to branch: driverfixes/newton
Review: https://review.openstack.org/492759

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/cinder 11.0.0.0rc1

This issue was fixed in the openstack/cinder 11.0.0.0rc1 release candidate.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to cinder (driverfixes/newton)

Reviewed: https://review.openstack.org/492759
Committed: https://git.openstack.org/cgit/openstack/cinder/commit/?id=d21305c1d15efe0301157a72c93ac8c8b910f253
Submitter: Jenkins
Branch: driverfixes/newton

commit d21305c1d15efe0301157a72c93ac8c8b910f253
Author: zengyingzhe <email address hidden>
Date: Fri Aug 4 18:19:52 2017 +0800

    Eliminate randomness in encode_name&encode_host_name methods

    Use 'md5' instead of 'hash' to generate a
    shorter lun name and host name for Huawei backend.

    Change-Id: Icfac5f34d3caaf6019e39802e5da44428593d927
    Closes-Bug: #1658725
    (cherry picked from commit 36471cfc0d93ae79bbbff85b15714f3405fa2796)

tags: added: in-driverfixes-newton
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to cinder (stable/ocata)

Reviewed: https://review.openstack.org/492757
Committed: https://git.openstack.org/cgit/openstack/cinder/commit/?id=740c7153d69e97bc3f605ffd8bdfa365465416d4
Submitter: Jenkins
Branch: stable/ocata

commit 740c7153d69e97bc3f605ffd8bdfa365465416d4
Author: zengyingzhe <email address hidden>
Date: Fri Aug 4 18:19:52 2017 +0800

    Eliminate randomness in encode_name&encode_host_name methods

    Use 'md5' instead of 'hash' to generate a
    shorter lun name and host name for Huawei backend.

    Change-Id: Icfac5f34d3caaf6019e39802e5da44428593d927
    Closes-Bug: #1658725
    (cherry picked from commit 36471cfc0d93ae79bbbff85b15714f3405fa2796)

tags: added: in-stable-ocata
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/cinder 10.0.6

This issue was fixed in the openstack/cinder 10.0.6 release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to cinder (master)

Reviewed: https://review.openstack.org/465636
Committed: https://git.openstack.org/cgit/openstack/cinder/commit/?id=52965d8974ca62bfaa4201d3057a0b5742e5c818
Submitter: Zuul
Branch: master

commit 52965d8974ca62bfaa4201d3057a0b5742e5c818
Author: Eric Harney <email address hidden>
Date: Wed May 17 11:29:58 2017 -0400

    Enable hash randomization in unit tests

    This is needed to ensure that unit tests match how
    deployed environments run.

    Related-Bug: #1348818
    Related-Bug: #1658725
    Related-Bug: #1715915

    Depends-On: I91a53fdef98c9a14ccc536403063e228e99d6971
    Depends-On: Ie548c90f5657e5270fd966207f453d5211e21867
    Depends-On: I754d48d8bc4081b96fdf90465c4897d0fadd6262
    Depends-On: Ia8762aff6fd9954d350310b4c68ee4fe94de68bf
    Depends-On: I6fe0ae5da270d9c77cb248551dcb32a5c063977a
    Depends-On: I96b9b413387f2ef02ea7ccfb6e676cad0b87c6f1
    Depends-On: Icdde5e3f213adfe4893d1b9e8f2bfe4f61704037
    Depends-On: I29a874ebe0ebaeca58b428faa0bab50482baf6f1
    Depends-On: I30817ae767e08c45f9540b19e922864fe2f7a9c2
    Depends-On: I281ad59fa518f936aa8d1b518acf61800ba949f5
    Depends-On: I0abd0415306c0c0544eb5d9a6ed08640ff6bb0cf
    Depends-On: I599b585444cbd51182d9f17fddd97bd91637e1e3
    Depends-On: I6e4093ca8e79128ed23a4d5068e5d2870e16332c
    Depends-On: I574dca83a971e746a54895a87e394befda0ccdcf
    Depends-On: Id5a961c66a62e289a96daa7437374768ef407bb6
    Depends-On: Ibc6c20e6ffce58c6bbef3155f73e54909d76e132
    Change-Id: I4c7396f9d8e58ac8420754503f8ed60cd7473426

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.