tripleo-common/tripleo_common/actions
Michele Baldessari 6f55c89171 Use oslo_rootwrap subprocess module in order to gain proper eventlet awareness
Via 31cfdbd407
oslo.rootwrap gained support eventlet when using subprocess. By moving
to oslo_rootwrap.subprocess we make sure that with python3 the
subprocess calls use eventlet.green.subprocess if eventlet is used.
This worked on python2 because (from above commit):
"""
On Python 2, it "works" to use directly subprocess: subprocess.Popen
calls os.pipe() and os.fdopen(fd) which are both monkey-patched. On
Python 3, it doesn't work because subprocess uses os.pipe() and
io.open(fd), and the io module is *not* monkey-patched at all.
"""

By applying this change what happens is that the heartbeat thread is
able to be scheduled every 15seconds by default. Without this patch
what we have been observing with python3 is that while running ansible
mistral would constantly log error messages like the following:
2019-05-02 19:14:36.702 8 WARNING oslo.messaging._drivers.impl_rabbit [-] Unexpected error during heartbeart thread processing, retrying...: amqp.exceptions.ConnectionForced: Too many heartbeats missed

With this change we could not reproduce this issue during a deployment
and no missed heartbeat messages were observed during the deploy.

Co-Authored-By: Damien Ciabrini <dciabrin@redhat.com>
Co-Authored-By: Hervé Beraud <hberaud@redhat.com>

Closes-Bug: #1826281

Change-Id: Id22b1465d6d2424d90781983b970aba4545feb8a
(cherry picked from commit 2e54cff0db)
2019-05-04 04:58:09 +02:00
..
__init__.py Set heatclient exceptions to verbose 2018-11-30 10:43:12 +01:00
ansible.py Use oslo_rootwrap subprocess module in order to gain proper eventlet awareness 2019-05-04 04:58:09 +02:00
baremetal.py Stop setting boot_option=local on ironic nodes 2018-11-19 16:05:07 +00:00
baremetal_deploy.py nova-less-deploy: implement deploy_roles workflow 2019-02-28 10:52:41 +00:00
base.py Migrate to the new Mistral context class 2018-05-30 14:37:28 +01:00
config.py Merge "Fix - config-download tarball upload OverflowError" 2018-12-07 04:17:47 +00:00
container_images.py Handle swift interactions are strings as necessary 2019-03-01 15:45:56 -07:00
deployment.py Stop outputting overcloudrc.v3 from workflow 2019-03-06 05:40:50 +00:00
derive_params.py Merge "Derives NUMA aware vSwitches parameters" 2019-02-08 23:36:47 +00:00
files.py Do not fail deploy for empty ceph ansible fetch directory 2018-11-20 14:35:46 -05:00
heat_capabilities.py Handle swift interactions are strings as necessary 2019-03-01 15:45:56 -07:00
logging_to_swift.py Handle swift interactions are strings as necessary 2019-03-01 15:45:56 -07:00
package_update.py Set DeployIdentifier on update/upgrade/ffwd prepare actions 2018-11-26 13:23:49 +01:00
parameters.py Don't always validate heat stack when adding parameters 2019-02-25 17:58:47 +05:30
plan.py Handle swift interactions are strings as necessary 2019-03-01 15:45:56 -07:00
scale.py Return any errors from called actions in node delete 2018-03-15 11:18:57 -04:00
swifthelper.py use Result from mistral_lib instead of mistral 2017-06-23 14:20:45 +01:00
templates.py Wire in parameters.convert_docker_params 2019-04-10 13:25:39 -04:00
undercloud.py Include --xattrs when creating the undercloud backup. 2018-06-22 14:33:24 +02:00
validations.py Make validation inputs configurable via Mistral 2019-04-01 10:43:11 +00:00
vcs.py Fix interaction between gitpython and eventlet 2019-03-07 15:37:52 +01:00