<div dir="ltr">I'd choose Option #2</div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr"><div><span>Cheers,</span></div><span>Serge Kovaleff</span><br><div><a href="http://www.mirantis.com/" style="color:rgb(17,85,204)" target="_blank">http://www.mirantis.com</a></div><div>cell: +38 (063) 83-155-70<br></div></div></div></div>
<br><div class="gmail_quote">On Tue, Jul 21, 2015 at 3:24 PM, Dmitry Tantsur <span dir="ltr"><<a href="mailto:dtantsur@redhat.com" target="_blank">dtantsur@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi folks!<br>
<br>
If you're not aware already, I'm working on solving "node is locked" problems breaking users (and tracking it at <a href="https://etherpad.openstack.org/p/ironic-locking-reform" rel="noreferrer" target="_blank">https://etherpad.openstack.org/p/ironic-locking-reform</a>). We have retries in place in client, but we all agree that it's not the eventual solution.<br>
<br>
One of the things we've figured out is that we actually have server-side retries - in task_manager.acquire. They're nice and configurable. Alas, we have one place that checks reservations without task_manager: <a href="https://github.com/openstack/ironic/blob/master/ironic/api/controllers/v1/node.py#L401-L403" rel="noreferrer" target="_blank">https://github.com/openstack/ironic/blob/master/ironic/api/controllers/v1/node.py#L401-L403</a> (note that this check is actually racy)<br>
<br>
I'd like to ask your opinions on how to solve it? I have 3 ideas:<br>
1. Just implement retries on API level (possibly split away a common function from task_manager).<br>
2. Move update to conductor instead of doing it directly in API.<br>
3. Don't check reservation when updating node. At all.<br>
<br>
Ideas?<br>
<br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</blockquote></div><br></div>