From d5ac5f9d848a5505cecbd3732c4ab13c2cbcc160 Mon Sep 17 00:00:00 2001 From: Taegyun Kim Date: Wed, 20 Nov 2024 22:50:57 -0500 Subject: [PATCH] chore(profiling): gunicorn test improvements (#11471) - use `--worker-tmp-dir /dev/shm` as in https://pythonspeed.com/articles/gunicorn-in-docker/, https://docs.gunicorn.org/en/stable/faq.html#how-do-i-avoid-gunicorn-excessively-blocking-in-os-fchmod - clean up server when the request fails ## Checklist - [x] PR author has checked that all the criteria below are met - The PR description includes an overview of the change - The PR description articulates the motivation for the change - The change includes tests OR the PR description describes a testing strategy - The PR description notes risks associated with the change, if any - Newly-added code is easy to change - The change follows the [library release note guidelines](https://ddtrace.readthedocs.io/en/stable/releasenotes.html) - The change includes or references documentation updates if necessary - Backport labels are set (if [applicable](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting)) ## Reviewer Checklist - [x] Reviewer has checked that all the criteria below are met - Title is accurate - All changes are related to the pull request's stated goal - Avoids breaking [API](https://ddtrace.readthedocs.io/en/stable/versioning.html#interfaces) changes - Testing strategy adequately addresses listed risks - Newly-added code is easy to change - Release note makes sense to a user of the library - If necessary, author has acknowledged and discussed the performance implications of this PR as reported in the benchmarks PR comment - Backport labels are set in a manner that is consistent with the [release branch maintenance policy](https://ddtrace.readthedocs.io/en/latest/contributing.html#backporting) --- tests/profiling_v2/test_gunicorn.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/tests/profiling_v2/test_gunicorn.py b/tests/profiling_v2/test_gunicorn.py index cf798174d9b..4d7adbf6c95 100644 --- a/tests/profiling_v2/test_gunicorn.py +++ b/tests/profiling_v2/test_gunicorn.py @@ -30,7 +30,16 @@ def debug_print(*args): def _run_gunicorn(*args): cmd = ( - ["ddtrace-run", "gunicorn", "--bind", "127.0.0.1:7644", "--chdir", os.path.dirname(__file__)] + [ + "ddtrace-run", + "gunicorn", + "--bind", + "127.0.0.1:7644", + "--worker-tmp-dir", + "/dev/shm", + "--chdir", + os.path.dirname(__file__), + ] + list(args) + ["tests.profiling.gunicorn-app:app"] ) @@ -75,6 +84,9 @@ def _test_gunicorn(gunicorn, tmp_path, monkeypatch, *args): response = f.read().decode() debug_print(response) except Exception as e: + proc.terminate() + output = proc.stdout.read().decode() + print(output) pytest.fail("Failed to make request to gunicorn server %s" % e) finally: # Need to terminate the process to get the output and release the port