OpenStack Networking (Neutron)
ddaee9f060
Currently, when calling AsyncProcess.stop(), the code stops the stdout and stderr readers and kills the process. There exists an end case (as described in the bug report) in which after the readers have been stopped the sub-process will generate a substantial amount of outputs to either fd. Since the 'subprocess' module is launched with subprocess.PIPE as stdout/stderr, and since Linux's pipes can be filled to the point where writing new data to them will block, this may cause a deadlock if the sub-process has a signal handler for the signal (for example, the process is handling SIGTERM to produce a graceful exit of the program). Therefore, this patch proposes to only kill the readers until AFTER wait() returned and the process truly died. Also, relying on _kill_event had to cease since invoking its send() method caused a logical loop back to _kill, causing eventlet errors. A different possible solution is closing the stdout/stderr pipes. Alas, this may raise an exception in the sub-process ("what? No stdout?! Crash!") and defeats the 'graceful' part of the process. Closes-Bug: #1506021 Change-Id: I506c41c634a8d656d81a8ad7963412b834bdfa5b |
||
---|---|---|
bin | ||
devstack | ||
doc | ||
etc | ||
neutron | ||
rally-jobs | ||
tools | ||
.coveragerc | ||
.gitignore | ||
.gitreview | ||
.mailmap | ||
.pylintrc | ||
.testr.conf | ||
babel.cfg | ||
CONTRIBUTING.rst | ||
HACKING.rst | ||
LICENSE | ||
MANIFEST.in | ||
openstack-common.conf | ||
README.rst | ||
requirements.txt | ||
run_tests.sh | ||
setup.cfg | ||
setup.py | ||
test-requirements.txt | ||
TESTING.rst | ||
tox.ini |
Welcome!
You have come across a cloud computing network fabric controller. It has identified itself as "Neutron." It aims to tame your (cloud) networking!
External Resources:
The homepage for Neutron is: http://launchpad.net/neutron. Use this site for asking for help, and filing bugs. Code is available on git.openstack.org at <http://git.openstack.org/cgit/openstack/neutron>.
The latest and most in-depth documentation on how to use Neutron is available at: <http://docs.openstack.org>. This includes:
- Neutron Administrator Guide
- Networking Guide
- Neutron API Reference:
-
http://docs.openstack.org/api/openstack-network/2.0/content/
- Current Neutron developer documentation is available at:
For help on usage and hacking of Neutron, please send mail to <mailto:openstack-dev@lists.openstack.org>.
For information on how to contribute to Neutron, please see the contents of the CONTRIBUTING.rst file.