Race in PureISCSIDriver when creating hosts

Bug #1444224 reported by Patrick East
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Cinder
Fix Released
Low
Patrick East
Kilo
Fix Released
Low
Patrick East

Bug Description

In certain cases errors will arise from attempting to create a Purity host by two simultanious requests that are for the same initiator. This becomes very problematic when they are generating new CHAP credentials as both would create different values and set it on the host. This means one of the connections is going to fail, but any subsequent connections pick up the right one from the database.

We should put some synchronization around the code creating hosts and generating credentials in PureISCSIDriver.

Changed in cinder:
assignee: nobody → Patrick East (patrick-east)
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/173653

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

Fix proposed to branch: proposed/kilo
Review: https://review.openstack.org/173655

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

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

commit a712afe42833443878898bb42851376cd8615ff9
Author: Patrick East <email address hidden>
Date: Tue Apr 14 18:42:19 2015 -0700

    Add locking to PureISCSIDriver around creating Purity Host objects.

    This will prevent us from getting conflicting credentials for
    connection methods which will result in iSCSI attach operations to fail.

    Change-Id: Ia206e7b5ff330c8fccb49ed23a31b120a5c04eb3
    Closes-Bug: 1444224

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

Fix proposed to branch: stable/kilo
Review: https://review.openstack.org/174051

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

Change abandoned by Doug Hellmann (<email address hidden>) on branch: proposed/kilo
Review: https://review.openstack.org/173655
Reason: replaced by https://review.openstack.org/174051 on stable/kilo

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

Reviewed: https://review.openstack.org/174051
Committed: https://git.openstack.org/cgit/openstack/cinder/commit/?id=3c3e1d8db5ff64156ab345c375549021db55b8a2
Submitter: Jenkins
Branch: stable/kilo

commit 3c3e1d8db5ff64156ab345c375549021db55b8a2
Author: Patrick East <email address hidden>
Date: Tue Apr 14 18:42:19 2015 -0700

    Add locking to PureISCSIDriver around creating Purity Host objects.

    This will prevent us from getting conflicting credentials for
    connection methods which will result in iSCSI attach operations to fail.

    Change-Id: Ia206e7b5ff330c8fccb49ed23a31b120a5c04eb3
    Closes-Bug: 1444224
    (cherry picked from commit a712afe42833443878898bb42851376cd8615ff9)

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/179287

Mike Perez (thingee)
Changed in cinder:
importance: Undecided → Low
milestone: none → liberty-1
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to cinder (master)
Download full text (6.4 KiB)

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

commit 5987bb2290f629e59b0bcced2f8fe22cdeb9cc6d
Author: John Griffith <email address hidden>
Date: Thu Apr 23 12:07:12 2015 -0600

    Add external genconfig calls

    After moving to oslo.config we still were using
    incubator config generator. This was ok, but the
    problem is we haven't been pulling config options
    from the oslo libs.

    This is a hack that just appends external lib calls
    and appends those options to the sample file being built.

    Change-Id: I2634b20ef4abd3bf7990f845d59ad3d208db234f
    (cherry picked from commit 51a22591a44932463847ed3247899db32ac49444)
    Closes-Bug: #1447380

commit b05274c96bc48e749e6ad21633b39158838c313e
Author: Brant Knudson <email address hidden>
Date: Wed Apr 22 14:57:53 2015 -0500

    service child process normal SIGTERM exit

    service.py had some code where the child process would catch the
    SIGTERM from the parent just so it could exit with 1 status rather
    than with an indication that it exited due to SIGTERM. When
    shutting down the parent doesn't care in what way the child ended,
    only that they're all gone, so this code is unnecessary.

    Also, for some reason this caused the child to never exit while
    there was an open connection from a client. Probably something
    with eventlet and signal handling.

    This is a cherry-pick of oslo-incubator commit
    702bc569987854b602ef189655c201c348de84cb .

    Change-Id: I87f3ca4da64fb8070e4d6c3876a2f1ce1a3ca71d
    Closes-Bug: #1446583
    (cherry picked from commit d73ac96d18c66aa4dd5b7d7f8d7c22e8f8434683)

commit 2727e8865ce7b9ef4eec81f7f07b7a0726eb304b
Author: Lucian Petrut <email address hidden>
Date: Fri Mar 27 14:15:25 2015 +0200

    Windows SMBFS: fix volume extend

    The Windows SMBFS driver inherits the Linux SMBFS driver,
    overriding Windows specific methods.

    This commit Ic89cffc93940b7b119cfcde3362f304c9f2875df added the
    volume name as an extra argument to the _do_extend_volume in order
    to check if differencing images are pointing to backing files other
    than the according volume disks.

    Although this is not required on Windows, this method should accept
    this extra argument in order to have the same signature as the
    method it overrides. At the moment, this raises the following
    exception:

    TypeError: _do_extend_volume() takes exactly 3 arguments (4 given)

    Closes-Bug: #1437290
    (cherry picked from commit dca29e9ab3cdde210d3777e7c6b4a6849447058a)
    Change-Id: I868d7de4a2c68f3fc520ba476a5660a84f440bb1

commit cc9bd73479ab4f0d14ee66eccab6fa285b8836b9
Author: Daisuke Fujita <email address hidden>
Date: Wed Apr 15 14:03:31 2015 +0900

    Fix a wrong argument of create method

    Change the argument 'QoSSpecs.create' to 'qos_specs.create'.

    Closes-Bug: #1443331
    (cherry picked from commit a3c0a4104f95acff00d3a9721caa4da730619fb7)
    Change-Id: Iabebc5f1681be75fb06d83...

Read more...

Thierry Carrez (ttx)
Changed in cinder:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in cinder:
milestone: liberty-1 → 7.0.0
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.