OpenStack Networking (Neutron)
Go to file
dukhlov 1cafff0871 Remove threading before process forking
Forking a process when multiple threads are running is an unsafe
operation and could cause a lot of problems because only current
thread will continue working in child thread. Any locked by other
thread resource will remain locked forever.

We faced with this problem during oslo.messaging development and
added workaround to hide this problem:
https://review.openstack.org/#/c/274255/

I tried to fix this problem in oslo.service:
https://review.openstack.org/#/c/270832/

but oslo folks said that this fix is ugly and it is wrong way to add
workarounds to common libraries because projects use them incorrectly.
I think that is fair.

So this patch fixes incorrect usage of oslo libraries. In this patch
I extended functionality of NeutronWorker and add there
`worker_process_count` parameter which determines how many processes
should be spawned for this worker. If `worker_process_count` = 0 - don't
create process and spawn thread in scope of current process for worker

Then I moved all background tasks to workers and return them by
`get_workers` method. start_plugin_workers collects plugin's workers
using `get_workers` method and starts in ProcessLauncher first workers
with `worker_process_count` > 0 and only after this starts threaded
workers by simple Launcher

Closes-bug: #1569404

Change-Id: I0544f1d47ae53d572adda872847a56fa0b202d2e
2016-05-03 21:54:23 +03:00
bin Close XenAPI sessions in neutron-rootwrap-xen-dom0 2016-03-18 13:05:09 -05:00
devstack Remove BGP code from neutron 2016-04-25 21:54:06 -07:00
doc Updated devref documents for neutron-dynamic-routing 2016-04-25 14:30:56 +00:00
etc Remove BGP code from neutron 2016-04-25 21:54:06 -07:00
neutron Remove threading before process forking 2016-05-03 21:54:23 +03:00
rally-jobs Increase ports per network and add SLA for rally 2016-04-01 23:09:19 +00:00
releasenotes Revert "ML2: Configure path_mtu to default to 1500 bytes" 2016-04-21 15:50:34 +02:00
tools Merge "milestone-review-dash detect current milestone" 2016-04-12 05:06:32 +00:00
.coveragerc Change ignore-errors to ignore_errors 2015-09-21 14:31:29 +00:00
.gitignore Automatically generate neutron core configuration files 2015-11-27 15:22:59 +00:00
.gitreview Fix .gitreview to not point at a branch 2015-08-17 13:51:51 -06:00
.mailmap Add mailmap entry 2014-05-16 13:40:04 -04:00
.pylintrc Start using neutron-lib for shared constants and exceptions 2016-02-10 16:41:18 -07:00
.testr.conf .testr.conf: revert workaround of testtools bug 2016-02-19 14:29:07 +01:00
CONTRIBUTING.rst Workflow documentation is now in infra-manual 2014-12-05 03:30:37 +00:00
HACKING.rst Hacking rule to check i18n usage 2016-03-30 21:28:37 -04:00
LICENSE Adding Apache Version 2.0 license file. This is the official license agreement under which Quantum code is available to 2011-08-08 12:31:04 -07:00
MANIFEST.in Include alembic versions directory to the package 2015-10-21 07:26:24 +00:00
README.rst Update the URLs to the Cloud Admin Guide 2015-08-24 17:24:34 +02:00
TESTING.rst Move away from invoking api tests explicitly 2016-04-15 17:13:59 +00:00
babel.cfg Use babel to generate translation file 2013-01-24 00:20:32 +08:00
openstack-common.conf remove openstack-common.conf 2016-01-08 12:58:59 +08:00
requirements.txt Updated from global requirements 2016-04-19 12:25:40 +00:00
run_tests.sh Remove check for bash usage 2015-04-07 15:15:33 +00:00
setup.cfg Remove BGP code from neutron 2016-04-25 21:54:06 -07:00
setup.py Updated from global requirements 2015-09-21 18:56:49 +00:00
test-requirements.txt Move away from invoking api tests explicitly 2016-04-15 17:13:59 +00:00
tox.ini Revert "Switch to inheriting hacking checks from neutron-lib" 2016-04-24 15:19:20 +00:00

README.rst

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

http://docs.openstack.org/admin-guide-cloud/networking.html

Networking Guide

http://docs.openstack.org/networking-guide/

Neutron API Reference:

http://docs.openstack.org/api/openstack-network/2.0/content/

Current Neutron developer documentation is available at:

http://wiki.openstack.org/NeutronDevelopment

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.