StarlingX NFVI Orchestration
Go to file
Bart Wensley ccd59a0711 Handle REST API timeouts gracefully in the VIM
The VIM is leaking FDs. The problem happens as follows:
- The VIM has worker processes that are used to communicate with
  other processes through their REST APIs (e.g. sysinv, nova,
  cinder). The VIM does not specify a timeout when sending REST API
  requests.
- The VIM does have a timeout for how long a worker process takes to
  process a request, which can vary depending on the request.
- If the worker process sends a REST API request and does not get a
  response in time (e.g. because a message is lost or the target
  process is down), the VIM terminates the worker process. This is
  being done with a call to Process.terminate in the python
  multiprocessing library. The docs for this library clearly indicate
  that Process.terminate should not be used for a process that uses
  any shared resources (e.g. pipes). In this case, the worker
  processes are using shared resources (pipes for one) and these
  resources are not freed, leading to the FD leak.

The solution is to ensure that a timeout is set when sending REST API
requests. This timeout must be less than the worker timeout to ensure
that the workers do not timeout (and leak FDs) except in the rarest
of cases.

Change-Id: Iccff914e86224be96689738cdcc536a4d5acb861
Closes-Bug: 1862049
Signed-off-by: Bart Wensley <barton.wensley@windriver.com>
2020-06-03 11:37:56 -05:00
api-ref/source Add orchestrated fw update support to vim 2020-05-14 01:03:21 +00:00
devstack Followup opendev cleanup and test jobs 2019-04-21 14:21:35 -05:00
doc Update landing pages for docs, api-ref, and release notes: 2020-01-21 16:39:36 -08:00
mtce-guest De-branding in starlingx/nfv: Titanium Cloud -> StarlingX 2020-04-08 14:54:13 +02:00
nfv Handle REST API timeouts gracefully in the VIM 2020-06-03 11:37:56 -05:00
nova-api-proxy Merge "Refactor on nova-api-proxy.spec for opensuse" 2019-10-10 19:35:12 +00:00
releasenotes Update landing pages for docs, api-ref, and release notes: 2020-01-21 16:39:36 -08:00
.gitignore [Doc] OpenStack API Reference Guide 2018-09-25 14:01:33 -07:00
.gitreview OpenDev Migration Patch 2019-04-19 19:52:26 +00:00
.zuul.yaml Adding job to upload commits to GitHub 2020-02-06 12:45:49 -05:00
CONTRIBUTORS.wrs StarlingX open source release updates 2018-05-31 07:36:51 -07:00
LICENSE StarlingX open source release updates 2018-05-31 07:36:51 -07:00
README.rst Followup opendev cleanup and test jobs 2019-04-21 14:21:35 -05:00
centos_build_layer.cfg Build layering, add layer build config file 2019-10-15 19:12:57 +08:00
centos_dev_docker_images.inc Create the stable/dev wheel and image build files 2019-03-21 10:09:02 -04:00
centos_dev_wheels.inc Add NFV wheels to tarball 2019-11-14 10:52:14 -05:00
centos_guest_image.inc Remove wrs-guest-heartbeat SDK Module 2019-04-17 16:34:14 -04:00
centos_guest_image_rt.inc Remove wrs-guest-heartbeat SDK Module 2019-04-17 16:34:14 -04:00
centos_iso_image.inc Remove wrs-server-group SDK Module from StarlingX 2019-03-27 14:01:52 -04:00
centos_pkg_dirs Remove wrs-guest-heartbeat SDK Module 2019-04-17 16:34:14 -04:00
centos_stable_docker_images.inc Create the stable/dev wheel and image build files 2019-03-21 10:09:02 -04:00
centos_stable_wheels.inc Add NFV wheels to tarball 2019-11-14 10:52:14 -05:00
requirements.txt Adding py27 for nfv 2018-07-10 10:18:28 -05:00
test-requirements.txt Change nfv tox requirements for bashate version 2020-03-30 15:08:16 +00:00
tox.ini Fix DEPRECATION WARNING for pep8 2019-07-04 10:27:56 -04:00

README.rst

nfv

StarlingX NFVI Orchestration