Concurrent requests to allow access get lost

Bug #1550295 reported by Tiago Pasqualini da Silva
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
OpenStack Shared File Systems Service (Manila)
Fix Released
High
Tiago Pasqualini da Silva

Bug Description

With the new update-access interface, concurrent requests to allow access might get lost when the driver takes a long time to process the new rules.

Consider the following scenario:

1) user allows access to ip 10.0.0.1.
2) while driver is still processing the rules, user allows access to ip 10.0.0.2.
3) access-rules-status is out of sync, so api will throw an error.
4) the driver will complete processing the 10.0.0.1 rule and manila will change access-rules status to active, completely ignoring the 10.0.0.2 rule.

Another scenario with 2 instances:

1) user allows access to ip 10.0.0.1.
2) Manila is applying the rules to two instances, one is completed, but the other is not.
3) user sends request to allow access to 10.0.0.2.
4) while looping between instances, it will send the request to the first instance which has active status, but throw an exception for the second instance with out_of_sync status.

description: updated
Changed in manila:
importance: Undecided → High
milestone: none → mitaka-3
Changed in manila:
assignee: nobody → Tiago Pasqualini da Silva (tiago.pasqualini)
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/287758

Changed in manila:
status: New → In Progress
Changed in manila:
milestone: mitaka-3 → mitaka-rc1
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to manila (master)

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

commit 70f59f7b7ca3930436c700bda45ac17516a25ee7
Author: tpsilva <email address hidden>
Date: Thu Mar 3 09:20:58 2016 -0300

    Fix update_access concurrency issue

    With the new update_access interface, concurrent requests to allow
    access might get lost when the driver takes a long time to process
    the new rules. This patch fixes this issue by verifying for the
    existence of new unprocessed rules at the end of the update_access
    method.

    APIImpact
    access_allow action on shares with access_rules_status 'out_of_sync'
    was previously disallowed with HTTPBadRequest. Now, the action is
    disallowed only for shares with access_rules_status set to 'error'.

    Change-Id: I0f863cbae4d8af0660114161deda7bf7aa60d71d
    Closes-bug: #1550295

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

This issue was fixed in the openstack/manila 2.0.0 release.

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.