vmware: APIs are retried unnecessarily for non-session/non-connection related problems

Bug #1294598 reported by Vipin Balachandran
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Cinder
Fix Released
Medium
Vipin Balachandran
Icehouse
Fix Released
Medium
Gary Kotton

Bug Description

The vmdk cinder drivers retry the VIM APIs including login API even during errors which are unrelated to connection or session overload problems. The VIM APIs need to retried only during session overload or a stale session scenario.

Changed in cinder:
importance: Undecided → High
importance: High → Medium
Changed in cinder:
milestone: icehouse-rc1 → none
Changed in cinder:
status: New → Confirmed
Revision history for this message
Openstack Gerrit (openstack-gerrit) wrote : Fix proposed to cinder (master)

Fix proposed to branch: master
Review: https://review.openstack.org/87895

Changed in cinder:
status: Confirmed → In Progress
tags: removed: vmdk
Gary Kotton (garyk)
tags: added: icehouse-backport-potential
Changed in cinder:
milestone: none → juno-1
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to cinder (master)

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

commit bc115eaa477d30826ac17986a6e45844b456e206
Author: Vipin Balachandran <email address hidden>
Date: Wed Apr 16 14:06:31 2014 +0530

    vmware: Fix problems with VIM API retry logic

    Currently the VIM APIs including session creation API are retried for
    cases which are unrelated to connection or session overload problems.
    This change fix the retry logic as follows:
    * Add an exception to indicate connection problem and raise it
      appropriately from the VIM API client
    * Modify the expected exceptions in the retry decorator to include
      only connection and session overload related exceptions

    This change also fixes the base class of VimFaultException
    (VolumeBackendAPIException -> VimException). This change is required
    so that we can handle the exceptions thrown by the VIM API client in
    a consistent manner. Currently if we need to handle VIM API related
    exceptions, we have to catch both VimException and VimFaultException.
    For example, the API for checking active session raises
    VimFaultException in some cases and we are handling only VimException.
    Due to this, when session expires, the session re-establishment and API
    retry fails (intermittently) since the check for active session throws
    VimFaultException in some cases which is not handled.

    Change-Id: I72cfc7777c3ce693b8598633f822c12c2cee2235
    Closes-Bug: #1294598
    Closes-Bug: #1302514

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

Fix proposed to branch: stable/icehouse
Review: https://review.openstack.org/95651

Thierry Carrez (ttx)
Changed in cinder:
status: Fix Committed → Fix Released
Alan Pevec (apevec)
tags: removed: icehouse-backport-potential
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to cinder (stable/icehouse)

Reviewed: https://review.openstack.org/95651
Committed: https://git.openstack.org/cgit/openstack/cinder/commit/?id=3877a730c6631f311baa3992be6f37a986aa54f8
Submitter: Jenkins
Branch: stable/icehouse

commit 3877a730c6631f311baa3992be6f37a986aa54f8
Author: Vipin Balachandran <email address hidden>
Date: Wed Apr 16 14:06:31 2014 +0530

    vmware: Fix problems with VIM API retry logic

    Currently the VIM APIs including session creation API are retried for
    cases which are unrelated to connection or session overload problems.
    This change fix the retry logic as follows:
    * Add an exception to indicate connection problem and raise it
      appropriately from the VIM API client
    * Modify the expected exceptions in the retry decorator to include
      only connection and session overload related exceptions

    This change also fixes the base class of VimFaultException
    (VolumeBackendAPIException -> VimException). This change is required
    so that we can handle the exceptions thrown by the VIM API client in
    a consistent manner. Currently if we need to handle VIM API related
    exceptions, we have to catch both VimException and VimFaultException.
    For example, the API for checking active session raises
    VimFaultException in some cases and we are handling only VimException.
    Due to this, when session expires, the session re-establishment and API
    retry fails (intermittently) since the check for active session throws
    VimFaultException in some cases which is not handled.

    Change-Id: I72cfc7777c3ce693b8598633f822c12c2cee2235
    Closes-Bug: #1294598
    Closes-Bug: #1302514
    (cherry picked from commit bc115eaa477d30826ac17986a6e45844b456e206)

Chuck Short (zulcss)
tags: added: in-stable-icehouse
Thierry Carrez (ttx)
Changed in cinder:
milestone: juno-1 → 2014.2
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.