NetApp iSCSI driver doesn't enforce 32 block-ranges limit

Bug #1288962 reported by Andrew Kerr on 2014-03-06
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Andrew Kerr

Bug Description

The NetApp zapi for clone create has an undocumented limit of 32 block ranges (of a max 2^24 blocks each).

The driver should check to make sure the number of block range segments does not exceed 32. In the case of an excessively large request, the xml may be rejected by the filer silently and the volume will become stuck in an extending state, with 2 flexVols (the original and the new sized one) present on the filer.

description: updated
Ben Swartzlander (bswartz) wrote :

For cases when the range count exceeds 32, the clone call needs to be broken up into multiple calls with up to 32 ranges per call. In this way the practical limit is infinite.

Changed in cinder:
status: New → Confirmed
Changed in cinder:
assignee: nobody → Andrew Kerr (andrew-kerr)
summary: - NetApp iSCSI driver doesn't enforce 32 block range limit
+ NetApp iSCSI driver doesn't enforce 32 block-ranges limit
Andrew Kerr (andrew-kerr) wrote :

Additional info:

This 32 block-ranges limit applies to both the c-mode and 7-mode drivers' zapi calls.

Fix proposed to branch: master

Changed in cinder:
status: Confirmed → In Progress
Mike Perez (thingee) on 2014-03-12
tags: added: drivers
Changed in cinder:
assignee: Andrew Kerr (andrew-kerr) → Alex Meade (alex-meade)
Changed in cinder:
assignee: Alex Meade (alex-meade) → Andrew Kerr (andrew-kerr)

Submitter: Jenkins
Branch: master

commit aa4a89eda8941bce22ead9db2dd5f7bc6ca90e04
Author: Andrew Kerr <email address hidden>
Date: Tue Mar 11 10:28:55 2014 -0400

    Allow NetApp iSCSI driver to sub-clone large volumes

    The NetApp zapi used during certain extend operations has several limits
    imposed on it. Each block-range provided can only be 2^24 in size, and
    there can only be 32 block-ranges per zapi call. This fix allows the
    NetApp iSCSI driver to send multiple zapi calls if necessary, to allow
    for extend operations on volumes of an arbitrary size.

    Closes-Bug: #1288962
    Change-Id: I981d22f32cb2182112fbea3ea9880d1e8c8c91ab

Changed in cinder:
status: In Progress → Fix Committed
Thierry Carrez (ttx) on 2014-03-27
Changed in cinder:
milestone: none → icehouse-rc1
status: Fix Committed → Fix Released
Thierry Carrez (ttx) on 2014-04-17
Changed in cinder:
milestone: icehouse-rc1 → 2014.1

Change abandoned by Alan Pevec (<email address hidden>) on branch: stable/havana
Reason: Final Havana release 2012.3.4 has been cut and stable/havana is going to be removed in a week.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers