<div dir="ltr">I'm not sure I understand the behavior you are seeing. When your mechanism driver gets initialized and kicks off processing, all of that should be happening in the parent PID. I don't know why your child processes start executing code that wasn't invoked. Can you provide a pointer to the code or give a sample that reproduces the issue?<div><br></div><div>I modified the linuxbridge mech driver to try to reproduce it: <a href="http://paste.openstack.org/show/216859/">http://paste.openstack.org/show/216859/</a></div><div><br></div><div>In the output, I never received any of the init code output I added more than once, including the function spawned using eventlet.</div><div><br></div><div>The only time I ever saw anything executed by a child process was actual API requests (e.g. the create_port method).</div><div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 7, 2015 at 6:08 AM, Neil Jerram <span dir="ltr"><<a href="mailto:Neil.Jerram@metaswitch.com" target="_blank">Neil.Jerram@metaswitch.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Is there a design for how ML2 mechanism drivers are supposed to cope with the Neutron server forking?<br>
<br>
What I'm currently seeing, with api_workers = 2, is:<br>
<br>
- my mechanism driver gets instantiated and initialized, and immediately kicks off some processing that involves communicating over the network<br>
<br>
- the Neutron server process then forks into multiple copies<br>
<br>
- multiple copies of my driver's network processing then continue, and interfere badly with each other :-)<br>
<br>
I think what I should do is:<br>
<br>
- wait until any forking has happened<br>
<br>
- then decide (somehow) which mechanism driver is going to kick off that processing, and do that.<br>
<br>
But how can a mechanism driver know when the Neutron server forking has happened?<br>
<br>
Thanks,<br>
        Neil<br>
<br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</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>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div>Kevin Benton</div></div>
</div>