OpenStack Networking (Neutron)
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
John Schwarz ddaee9f060 Keep reading stdout/stderr until after kill
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
8 years ago
bin Replace 'import json' with oslo_serialization 8 years ago
devstack SR-IOV: devstack support for SR-IOV agent 8 years ago
doc Fix capitalization nit in patch 230218 8 years ago
etc Merge "Deprecate max_fixed_ips_per_port" 8 years ago
neutron Keep reading stdout/stderr until after kill 8 years ago
rally-jobs Changes in rally-jobs/README.rst 8 years ago
tools Merge remote-tracking branch 'origin/master' into walnut 8 years ago
.coveragerc Change ignore-errors to ignore_errors 8 years ago
.gitignore Remove quantum untracked files from .gitignore 8 years ago
.gitreview Remove pecan branch reference from .gitreview file 8 years ago
.mailmap Add mailmap entry 9 years ago
.pylintrc pylint: enable `duplicate-key` check 8 years ago
.testr.conf Workaround test stream corruption issue. 8 years ago
CONTRIBUTING.rst Workflow documentation is now in infra-manual 9 years ago
HACKING.rst Python3: use six.iteritems() instead of dict.iteritems() 8 years ago
LICENSE Adding Apache Version 2.0 license file. This is the official license agreement under which Quantum code is available to 12 years ago Rename Quantum to Neutron 10 years ago
README.rst Update the URLs to the Cloud Admin Guide 8 years ago
TESTING.rst Add testing coverage .rst, missing test infrastructure to-dos 8 years ago
babel.cfg Use babel to generate translation file 11 years ago
openstack-common.conf Switch to the oslo_utils.fileutils 8 years ago
requirements.txt Updated from global requirements 8 years ago Remove check for bash usage 8 years ago
setup.cfg Merge "Add neutron-linuxbridge-cleanup util" 8 years ago Updated from global requirements 8 years ago
test-requirements.txt Updated from global requirements 8 years ago
tox.ini Fix db error when running python34 Unit tests 8 years ago



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: Use this site for asking for help, and filing bugs. Code is available on at <>.

The latest and most in-depth documentation on how to use Neutron is available at: <>. This includes:

Neutron Administrator Guide

Networking Guide

Neutron API Reference:

Current Neutron developer documentation is available at:

For help on usage and hacking of Neutron, please send mail to <>.

For information on how to contribute to Neutron, please see the contents of the CONTRIBUTING.rst file.