Bug 1102340 - vmware: Fix problems with VIM API retry logic
Summary: vmware: Fix problems with VIM API retry logic
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-cinder
Version: 5.0 (RHEL 7)
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: z1
: 5.0 (RHEL 7)
Assignee: Matthew Booth
QA Contact: Jaroslav Henner
URL:
Whiteboard:
Depends On:
Blocks: 1055536 1140210 1140212 1140213
TreeView+ depends on / blocked
 
Reported: 2014-05-28 19:27 UTC by Stephen Gordon
Modified: 2016-04-26 20:22 UTC (History)
8 users (show)

Fixed In Version: openstack-cinder-2014.1.2-2.el7ost
Doc Type: Bug Fix
Doc Text:
Previously, OpenStack Block Storage (cinder) would retry any vSphere API call which failed, not just those which failed due to authentication or temporary network issues. Additionally, the code to automatically recreate a session could fail spuriously under some circumstances. This meant that any vSphere API call that failed would be called multiple times, which increased the load on the vSphere server. Also, API failures could result in a failure to re- establish a new session, causing all subsequent API calls to fail. With this update, vSphere API calls are only retried for transient network or session errors, and session recreation is independently retried for connection errors. This reduces the load on the vSphere server, and sessions are reliably recreated if they expire or fail.
Clone Of:
: 1140210 1140212 1140213 (view as bug list)
Environment:
Last Closed: 2014-09-30 18:02:11 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Launchpad 1294598 0 None None None Never
Launchpad 1302514 0 None None None Never
OpenStack gerrit 95651 0 None None None Never
Red Hat Product Errata RHBA-2014:1325 0 normal SHIPPED_LIVE Red Hat Enterprise Linux OpenStack Platform Bug Fix and Enhancement Advisory 2014-09-30 22:01:16 UTC

Description Stephen Gordon 2014-05-28 19:27:29 UTC
Description of problem:

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)

Comment 1 Matthew Booth 2014-08-26 11:17:26 UTC
This has already been merged from upstream stable.

Comment 8 Jaroslav Henner 2014-09-30 16:41:58 UTC
Tests just finished OK. No regression found.

Comment 9 errata-xmlrpc 2014-09-30 18:02:11 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2014-1325.html


Note You need to log in before you can comment on or make changes to this bug.