<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@SimSun";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.msochpdefault, li.msochpdefault, div.msochpdefault
        {mso-style-name:msochpdefault;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Calibri",sans-serif;}
span.emailstyle17
        {mso-style-name:emailstyle17;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.emailstyle20
        {mso-style-name:emailstyle20;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.emailstyle21
        {mso-style-name:emailstyle21;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle22
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1129930207;
        mso-list-type:hybrid;
        mso-list-template-ids:837966874 -55391682 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Calibri",sans-serif;
        mso-fareast-font-family:SimSun;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D">Hi Stefan</span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Thanks for the info. The patch you mentioned is not in the upstreaming patch list. I take a look at this patch, it looks more like a workaround for the bug of ceph. It checks the available space in ceph, and
 goes ahead to create image only if there’s enough space in ceph.<o:p></o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-.25in;mso-list:l0 level1 lfo1"><![if !supportLists]><span style="color:#1F497D"><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman"">         
</span></span></span><![endif]><span style="color:#1F497D">This patch assumed image size always be given, but this is not the case in current upstream glance. I know there’re patches in cinder and glanceclient to specify image size, I’m working on upstreaming
 these patches. These patches can improve the uploading performance(about 30%) because no resize will happen when creating an image with exact and large enough size. But cinder is not the only client of glance, at least we cannot assume this, so we still cannot
 assume image size always be given. Maybe the assumption is correct before starlingx be open sourced.<o:p></o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-.25in;mso-list:l0 level1 lfo1"><![if !supportLists]><span style="color:#1F497D"><span style="mso-list:Ignore">-<span style="font:7.0pt "Times New Roman"">         
</span></span></span><![endif]><span style="color:#1F497D">Even if image size always be given, this patch may also cannot handle all the cases. E.g.
<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:1.0in;text-indent:-.25in;mso-list:l0 level2 lfo1">
<![if !supportLists]><span style="font-family:"Courier New";color:#1F497D"><span style="mso-list:Ignore">o<span style="font:7.0pt "Times New Roman"">  
</span></span></span><![endif]><span style="color:#1F497D">Some images be created simultaneously by glance<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:1.0in;text-indent:-.25in;mso-list:l0 level2 lfo1">
<![if !supportLists]><span style="font-family:"Courier New";color:#1F497D"><span style="mso-list:Ignore">o<span style="font:7.0pt "Times New Roman"">  
</span></span></span><![endif]><span style="color:#1F497D">The quote of ceph pool happened to be changed<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:1.0in;text-indent:-.25in;mso-list:l0 level2 lfo1">
<![if !supportLists]><span style="font-family:"Courier New";color:#1F497D"><span style="mso-list:Ignore">o<span style="font:7.0pt "Times New Roman"">  
</span></span></span><![endif]><span style="color:#1F497D">The ceph pool be consumed by other app though this may rarely happen<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">I’m not sure if these are the reasons of not triaged this patch to the upstreaming patch list.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Go back to the patch c73ab48 (Enhanced-error-messages), this assumes
</span><span style="color:#1F497D">rbd.NoSpace exception will happen, right? So do you agree to catch this exception in rbd.py?</span><span style="color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Regards<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Liang<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><a name="_____replyseparator"></a><b>From:</b> Dinescu, Stefan [mailto:Stefan.Dinescu@windriver.com]
<br>
<b>Sent:</b> Tuesday, November 13, 2018 11:41 PM<br>
<b>To:</b> Fang, Liang A <liang.a.fang@intel.com>; Badea, Daniel <Daniel.Badea@windriver.com><br>
<b>Cc:</b> starlingx-discuss@lists.starlingx.io<br>
<b>Subject:</b> RE: [Starlingx-discuss] [glance] Analysis of patch c73ab48 (Enhanced-error-messages) for StartlingX upstreaming<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black">I think you are missing a glance_store patch for starlingx: </span><a href="https://github.com/openstack/stx-upstream/blob/master/openstack/python-glance-store/centos/patches/0001-Check-ceph-cluster-free-space-before-creating-image.patch"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif">https://github.com/openstack/stx-upstream/blob/master/openstack/python-glance-store/centos/patches/0001-Check-ceph-cluster-free-space-before-creating-image.patch</span></a><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black">
<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black">This patch added aditional checks for ceph space requirments.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black">I am saying this due to how you described the "self._create_image function" where it is missing a parameter added by the above patch.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black">In our use-case, the image-size was always passed to the rbd driver code, so the resize function (which is only called when the size is zero) was never called.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black">How the algorithm should work:<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black">- grab the size of the image that is about to be uploaded (we tested this through cli and horizon)<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black">- before uploading any data, check that ceph actually has space for that data<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black">- only after the check passes, we actually begin writing data to ceph<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black">We did this, because ceph actually blocked almost completely when a pool was full, requiring manual intervention to recover.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black">The LVM backend behaved properly in such cases, so no fix was written for that.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black"><o:p> </o:p></span></p>
<div>
<div>
<div class="MsoNormal" align="center" style="text-align:center"><span style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">
<hr size="2" width="100%" align="center">
</span></div>
<div id="divRpF510174">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black"> Fang, Liang A [liang.a.fang@intel.com]<br>
<b>Sent:</b> Tuesday, November 13, 2018 5:23 PM<br>
<b>To:</b> Dinescu, Stefan; Badea, Daniel<br>
<b>Cc:</b> </span><a href="mailto:starlingx-discuss@lists.starlingx.io"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif">starlingx-discuss@lists.starlingx.io</span></a><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black"><br>
<b>Subject:</b> RE: [Starlingx-discuss] [glance] Analysis of patch c73ab48 (Enhanced-error-messages) for StartlingX upstreaming</span><span style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black"><o:p></o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span style="color:#1F497D">Hi Stefan</span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">I take a look at this issue today, the hang happened inside ceph. So I modified ceph code (function resize) to just raise exception rbd.NoSpace at the entry of the function. This issue can be simulated now.</span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Regarding this patch, as I said previously, rbd (ceph) is just one type of the multiple types of backend, so I prefer to catch the rbd.NoSpace in glance_store (rbd.py), handle the exception there, and then re-raise
 a more common exception (StorageFull) to glance. Do you think this makes sense? If so, I will close the review in glance, and create a new review in glance_store.</span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Regards</span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Liang</span><span style="color:black"><o:p></o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="color:black">From:</span></b><span style="color:black"> Dinescu, Stefan [</span><a href="mailto:Stefan.Dinescu@windriver.com">mailto:Stefan.Dinescu@windriver.com</a><span style="color:black">]
<br>
<b>Sent:</b> Monday, November 12, 2018 10:13 PM<br>
<b>To:</b> Fang, Liang A <</span><a href="mailto:liang.a.fang@intel.com">liang.a.fang@intel.com</a><span style="color:black">>; Badea, Daniel <</span><a href="mailto:Daniel.Badea@windriver.com">Daniel.Badea@windriver.com</a><span style="color:black">><br>
<b>Cc:</b> </span><a href="mailto:starlingx-discuss@lists.starlingx.io">starlingx-discuss@lists.starlingx.io</a><span style="color:black"><br>
<b>Subject:</b> RE: [Starlingx-discuss] [glance] Analysis of patch c73ab48 (Enhanced-error-messages) for StartlingX upstreaming<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black">Hello,
</span><span style="color:black"><o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black"> </span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black">I havent' tested that part of the code in some time now, but from what I remember it was part of a larger set of changes to prevent ceph from hanging if not enough
 space was available.</span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black"> </span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black">How it should work (but as I said, I haven't tested this in some time):</span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black">-  decrease the glance image pool quota (this is just so it's easier to test)</span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black">-  upload images to glance until space if almost full</span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black">- the image that would have filled the pool should fail to upload entirely.</span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black"> </span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black">It seems you are doing the correct procedure from what you described, so this probably requires a more in-depth investigation to see why it fails.</span><span style="color:black"><o:p></o:p></span></p>
<div>
<div class="MsoNormal" align="center" style="text-align:center"><span style="font-size:12.0pt;font-family:"Times New Roman",serif;color:black">
<hr size="2" width="100%" align="center">
</span></div>
<div id="divRpF493901">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black"> Fang, Liang A [liang.a.fang@intel.com]<br>
<b>Sent:</b> Saturday, November 10, 2018 11:23 AM<br>
<b>To:</b> Badea, Daniel; Dinescu, Stefan<br>
<b>Cc:</b> </span><a href="mailto:starlingx-discuss@lists.starlingx.io" target="_blank"><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif">starlingx-discuss@lists.starlingx.io</span></a><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:black"><br>
<b>Subject:</b> [Starlingx-discuss] [glance] Analysis of patch c73ab48 (Enhanced-error-messages) for StartlingX upstreaming</span><span style="color:black"><o:p></o:p></span></p>
</div>
<div>
<div>
<p class="MsoNormal"><span style="color:black">Hi Daniel and Stefan<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Please refer to </span><a href="https://review.openstack.org/#/c/616880/" target="_blank">https://review.openstack.org/#/c/616880/</a><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">This patch is to provide detailed exception info when no space in rbd. But in my environment, if rbd has no space, the function call to rbd will not return, there’s no exception raised.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Details:<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">In /usr/local/lib/python2.7/dist-packages/glance_store/_drivers/rbd.py<o:p></o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-.25in"><span style="color:black">-</span><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:black">         
</span><span style="color:black">Function call will hang at line 484 (_create_image) if no space to create image at the beginning<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:.5in"><span style="color:black"><img border="0" width="599" height="27" id="Picture_x0020_1" src="cid:image001.png@01D47C0A.94F63E70" alt="cid:image001.png@01D47C0A.94F63E70"></span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-.25in"><span style="color:black">-</span><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:black">         
</span><span style="color:black">Function call will hang at line 506 (image.resize) if no space at the middle of uploading.<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="color:black"><img border="0" width="437" height="17" id="Picture_x0020_2" src="cid:image002.png@01D47C0A.94F63E70" alt="cid:image002.png@01D47C0A.94F63E70"></span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Could you please give some clue to reproduce this patch (raise rbd.NoSpace)?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Couple of other thought:<o:p></o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-.25in"><span style="color:black">1.</span><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:black">      
</span><span style="color:black">This patch is to catch exception at v1 api, but v1 is about to be removed by community.<o:p></o:p></span></p>
<p class="MsoListParagraph" style="text-indent:-.25in"><span style="color:black">2.</span><span style="font-size:7.0pt;font-family:"Times New Roman",serif;color:black">      
</span><span style="color:black">rbd is just one type of the multiple types of backend, so I think catch specific backend’s exception at a common code is not so good. glance_store/rbd.py may be the better place to catch this exception. In fact rbd.py already
 did similar thing, see:<o:p></o:p></span></p>
<p class="MsoListParagraph"><span style="color:black"><img border="0" width="565" height="90" id="Picture_x0020_3" src="cid:image003.png@01D47C0A.94F63E70" alt="cid:image003.png@01D47C0A.94F63E70"></span><span style="color:black"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Thanks<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black">Liang<o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>