<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jul 24, 2014 at 1:01 AM, Nikhil Manchanda <span dir="ltr"><<a href="mailto:nikhil@manchanda.me" target="_blank">nikhil@manchanda.me</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class=""><br>
Tim Simpson writes:<br>
<br>
> To summarize, this is a conversation about the following LaunchPad<br>
> bug: <a href="https://launchpad.net/bugs/1325512" target="_blank">https://launchpad.net/bugs/1325512</a><br>
> and Gerrit review: <a href="https://review.openstack.org/#/c/97194/6" target="_blank">https://review.openstack.org/#/c/97194/6</a><br>
><br>
> You are saying the function "_service_is_active" in addition to<br>
> polling the datastore service status also polls the status of the Nova<br>
> resource. At first I thought this wasn't the case, however looking at<br>
> your pull request I was surprised to see on line 320<br>
> (<a href="https://review.openstack.org/#/c/97194/6/trove/taskmanager/models.py" target="_blank">https://review.openstack.org/#/c/97194/6/trove/taskmanager/models.py</a>)<br>
> polls Nova using the "get" method (which I wish was called "refresh"<br>
> as to me it sounds like a lazy-loader or something despite making a<br>
> full GET request each time). So moving this polling out of there into<br>
> the two respective "create_server" methods as you have done is not<br>
> only going to be useful for Heat and avoid the issue of calling Nova<br>
> 99 times you describe but it will actually help operations teams to<br>
> see more clearly that the issue was with a server that didn't<br>
> provision. We actually had an issue in Staging the other day that took<br>
> us forever to figure out because the server wasn't provisioning, but<br>
> before anything checked that it was ACTIVE the DNS code detected the<br>
> server had no ip address (never mind it was in a FAILED state) so the<br>
> logs surfaced this as a DNS error. This change should help us avoid<br>
> such issues.<br>
><br>
<br>
</div>Thanks for bringing this up, Tim / Denis.<br>
<br>
As Tim mentions, it does look like the '_service_is_active' call in<br>
the taskmanager also polls Nova to check whether the instance is in<br>
ERROR, causing some unnecessary, extra polling while figuring out the<br>
state of the Trove instance.<br>
<br>
Given this, it does seem reasonable to split up the polling into two<br>
separate methods, in a manner similar to what [1] is trying to<br>
accomplish. However, [1] does seems a bit rough around the edges, and<br>
needs a bit of cleaning up -- and I've commented on the review to this<br>
effect.<br>
<br></blockquote><div><br></div><div>Of course, all comments are reasonable. Will send patchset soon.</div><div><br></div><div>Thanks,</div><div>Denis</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
[1] <a href="https://review.openstack.org/#/c/97194" target="_blank">https://review.openstack.org/#/c/97194</a><br>
<br>
Hope this helps,<br>
<br>
Thanks,<br>
Nikhil<br>
<br>
><br>
> [...]<br>
<div class="HOEnZb"><div class="h5"><br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</div></div></blockquote></div><br></div></div>