yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #12919
[Bug 1301035] [NEW] Nova notifier thread does not run in rpc_worker sub-processes
Public bug reported:
This reported to me today by Maru. When an rpc worker is spawned as a
sub-process, that happens after the nova notifier thread has already
started.
eventlet.hubs.use_hub() is the call in
neutron/openstack/common/service.py that causes all thread execution to
stop.
>From the event let documentation: "Make sure to do this before the
application starts doing any I/O! Calling use_hub completely eliminates
the old hub, and any file descriptors or timers that it had been
managing will be forgotten."
Maru's observation is that this means that thread should not spawn
before forking the process if they need to run in the child process. I
agree.
The reason that threads spawn is that the plugin gets loaded prior to
forking and the thread for the nova notifier is started in the __init__
method of a sub-class of the plugin.
** Affects: neutron
Importance: Undecided
Assignee: Carl Baldwin (carl-baldwin)
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1301035
Title:
Nova notifier thread does not run in rpc_worker sub-processes
Status in OpenStack Neutron (virtual network service):
New
Bug description:
This reported to me today by Maru. When an rpc worker is spawned as a
sub-process, that happens after the nova notifier thread has already
started.
eventlet.hubs.use_hub() is the call in
neutron/openstack/common/service.py that causes all thread execution
to stop.
From the event let documentation: "Make sure to do this before the
application starts doing any I/O! Calling use_hub completely
eliminates the old hub, and any file descriptors or timers that it had
been managing will be forgotten."
Maru's observation is that this means that thread should not spawn
before forking the process if they need to run in the child process.
I agree.
The reason that threads spawn is that the plugin gets loaded prior to
forking and the thread for the nova notifier is started in the
__init__ method of a sub-class of the plugin.
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1301035/+subscriptions
Follow ups
References