NetApp cDOT driver isn't reentrant

Bug #1500257 reported by Clinton Knight
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Shared File Systems Service (Manila)
Fix Released
Critical
Clinton Knight

Bug Description

While testing the driver at high concurrency (12), I discovered some occasional errors that were difficult to explain until I noticed after combing through thousands of log lines that some APIs were being sent to the wrong vserver. Root cause is that the protocol helpers are reused despite being stateful. There is virtually no performance benefit to caching the helper classes, so the simplest fix is to stop caching them.

tags: added: liberty-rc-potential
Changed in manila:
status: Confirmed → In Progress
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/228585

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

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

commit 7049a9aac9550c449deefcd129aa871924d013c8
Author: Clinton Knight <email address hidden>
Date: Sun Sep 27 15:32:05 2015 -0700

    NetApp cDOT driver isn't reentrant

    While testing the cDOT driver at high concurrency (12), we observed a few
    occasional errors that were difficult to explain until we noticed that
    some APIs were being sent to the wrong vserver. Root cause is that the
    protocol helpers are cached and reused despite being stateful. There is
    virtually no performance benefit to caching the helper classes, so the
    simplest fix is to stop caching them.

    Change-Id: I30efcf5a3ada4cc03d8506738876498ae75d20d3
    Closes-Bug: #1500257

Changed in manila:
status: In Progress → Fix Committed
Changed in manila:
milestone: mitaka-1 → liberty-rc2
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to manila (stable/liberty)

Fix proposed to branch: stable/liberty
Review: https://review.openstack.org/229543

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

Reviewed: https://review.openstack.org/229543
Committed: https://git.openstack.org/cgit/openstack/manila/commit/?id=ae378ce27d961f074953eccae0047bdf5af8821f
Submitter: Jenkins
Branch: stable/liberty

commit ae378ce27d961f074953eccae0047bdf5af8821f
Author: Clinton Knight <email address hidden>
Date: Sun Sep 27 15:32:05 2015 -0700

    NetApp cDOT driver isn't reentrant

    While testing the cDOT driver at high concurrency (12), we observed a few
    occasional errors that were difficult to explain until we noticed that
    some APIs were being sent to the wrong vserver. Root cause is that the
    protocol helpers are cached and reused despite being stateful. There is
    virtually no performance benefit to caching the helper classes, so the
    simplest fix is to stop caching them.

    Change-Id: I30efcf5a3ada4cc03d8506738876498ae75d20d3
    Closes-Bug: #1500257
    (cherry picked from commit 7049a9aac9550c449deefcd129aa871924d013c8)

tags: added: in-stable-liberty
Changed in manila:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in manila:
milestone: liberty-rc2 → 1.0.0
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/235328

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to manila (master)
Download full text (11.9 KiB)

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

commit f1eded1fbcaf309e1c9a4be3f8a14bd25daa3e46
Author: Gaurang Tapase <email address hidden>
Date: Mon Oct 12 20:47:19 2015 +0530

    Fix usage of dependencies

    Manila is broken is threee places, so fix them:
    1) test 'test_misc' with WebOb 1.5

    WebOb 1.5 was released at 2015-10-11. With this new version,
    webob.exc.WSGIHTTPException() constructor now fails with a KeyError
    when the HTTP status code is 0.

    test_exceptions_raise() of test_misc tries to instantiate all
    exceptions of manila.exception. The problem is that
    ConvertedException uses a default HTTP status code of 0.

    Modify the default HTTP status code of ConvertedException to 400 to
    fix the unit tests.

    2) Add dependency for 'testresources' that is required by migration
    tests.

    3) Remove 2 unit tests related to testing of oslo.policy lib
    functionality that should not be tested in Manila. It started failing
    because under-the-hood behaviour was changed in new realese 0.12.0

    Closes-Bug: #1505153
    Closes-Bug: #1505374

    (cherry picked from commit 9c99814ce5943bd4c33bf3650b832666e31b3411)

    -- squashed with another change to get tests to pass on stable/liberty --

    Fix broken unit tests

    With release of six module version 1.10.0 several our unit tests
    started to fail because of usage of not strict constructions.

    Changes:
    1) Manila unit test
    "manila.tests.share.test_api.ShareAPITestCase.test_extend_quota_error"
    used str for int substitution. So, use int data for int substitution.

    2) Module 'manila.share.drivers.hp.hp_3par_mediator' was using
    LOG.exception function when no traceback were exist it led to
    AttributeError on py34. So, replace all usages of 'LOG.exception'
    with 'LOG.error' where no raised exceptions exist.

    Change-Id: Ic5b37bfb9d939d03f6ff68bc53d134bf9e5f996e
    Closes-Bug: #1503969
    (cherry picked from commit f38b8d4efd1f68f4ea29747f7377e0936f61d89c)

    --

    Change-Id: I0f28f3c3fb2c7eec1bafc3a617344990f86810cf

commit 151b691bb2d4baa436913924df60b8c197f91463
Author: Valeriy Ponomaryov <email address hidden>
Date: Thu Oct 1 12:42:05 2015 +0300

    Fix display of availability-zone for manila-manage command

    Commands "manila-manage service list" and "manila-manage host list"
    were displaying availability zone instance instead of its name.

    Such bug appeared after implementation of Availability zone model.
    So, fix it by providing 'name' field of availability zone model.

    Change-Id: I14c3451380df01853183aed265344b1783c95939
    Closes-Bug: #1499677

commit 77455a5ac6be828e8dfd3e75566eaff2823595d4
Author: Csaba Henk <email address hidden>
Date: Wed Sep 30 14:57:00 2015 +0200

    glusterfs_native: use dynamic-auth option if available

    With dynamic-auth restarting the volume is not necessary
    in deny_access.

    Change-Id: Ic25af1795c279b34370...

Revision history for this message
Doug Hellmann (doug-hellmann) wrote : Fix included in openstack/manila 2.0.0.0b1

This issue was fixed in the openstack/manila 2.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

Remote bug watches

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