Batch operations may cause the number of connections exceed the limits of huawei array

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

Bug Description

Huawei OceanStor V3 series storage system support 32 connections at the same time.
In normal cases, when the manila-share service start, the "login" function of the huawei driver will be called.
The "login" function will set up a long-time connection to the huawei array(using the "Rest URL" in the configure file).
After that, the following rest command will be send using this connection.
That meanings one manila-share service will only use one connection.

However, when the connection broke down, huawei driver will try to login to another "Rest URL" in the configure file.
If this brokedown happened during the process of batch operations(for example, 50 share creations at the same time), each of the failed operations will lead to a login. That may cause the number of connections exceed the limits(which is 32).

The solution is to add a "synchronization decorator" to the "call" function, which makes the batch operations execute serially.

Tags: driver huawei
zhaohua (zhaohua-zhao)
Changed in manila:
assignee: nobody → zhaohua (zhaohua-zhao)
status: New → 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/213643

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

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

commit 6a961246fed279d56ae7099915aa2f4d7fd3c469
Author: zhaohua <email address hidden>
Date: Mon Aug 17 17:27:25 2015 +0800

    Change huawei driver send REST command serially

    - Add 'synchronization decorator' to the 'call' function of
      huawei driver. If the connection broke down, there will be
      only one re-login executed.
    - Change REST command timeout to 52s, change login timeout to 4s,
      to avoid long time waiting for failure.
    - Move the assemble of URL in the 'do_call' function. When re-login
      successed, the new connection will be used automatically.

    Change-Id: Ideb7e70d7f3d2f0fa3ec0b900c27bbd87bea6aef
    Closes-Bug: 1485441

Changed in manila:
status: In Progress → Fix Committed
Changed in manila:
importance: Undecided → Medium
Thierry Carrez (ttx)
Changed in manila:
milestone: none → liberty-3
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in manila:
milestone: liberty-3 → 1.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.