commit 55e06261aa86c87c7c059fbddc97cdbaae06e8dd
Author: Matthew Treinish <email address hidden>
Date: Fri Jan 5 15:11:17 2018 -0500
Add python_exec kwarg to processutils.execute()
This commit adds a new kwarg to the process_utils.execute() function to
specify the python executable to use when launching python to check
prlimits. This is necessary when processutils.execute() is called from
inside an API server running with uwsgi. In this case sys.executable is
uwsgi (because uwsgi links libpython.so and is actually the interpreter)
This doesn't work with the execute() function because it assumes the
cpython interpreter CLI is used for the arguments it uses to call the
prlimits module. To workaround this and enable API servers that may run
under uwsgi to use this those applications can simply pass in an
executable to use.
Longer term it might be better to migrate the prlimits usage to call
multiprocessing instead of subprocessing python. But that would require
a more significant rewrite of both processutils and prlimit to
facilitate that.
Reviewed: https:/ /review. openstack. org/531493 /git.openstack. org/cgit/ openstack/ oslo.concurrenc y/commit/ ?id=55e06261aa8 6c87c7c059fbddc 97cdbaae06e8dd
Committed: https:/
Submitter: Zuul
Branch: master
commit 55e06261aa86c87 c7c059fbddc97cd baae06e8dd
Author: Matthew Treinish <email address hidden>
Date: Fri Jan 5 15:11:17 2018 -0500
Add python_exec kwarg to processutils. execute( )
This commit adds a new kwarg to the process_ utils.execute( ) function to execute( ) is called from
specify the python executable to use when launching python to check
prlimits. This is necessary when processutils.
inside an API server running with uwsgi. In this case sys.executable is
uwsgi (because uwsgi links libpython.so and is actually the interpreter)
This doesn't work with the execute() function because it assumes the
cpython interpreter CLI is used for the arguments it uses to call the
prlimits module. To workaround this and enable API servers that may run
under uwsgi to use this those applications can simply pass in an
executable to use.
Longer term it might be better to migrate the prlimits usage to call
multiprocessing instead of subprocessing python. But that would require
a more significant rewrite of both processutils and prlimit to
facilitate that.
Change-Id: I0ae60f0b4cc370 0c783f6018e8373 58f0e053a09
Closes-Bug: #1712463