Skip to content

Commit

Permalink
chore(profiling): gunicorn test improvements (#11471)
Browse files Browse the repository at this point in the history
- 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)
  • Loading branch information
taegyunkim authored Nov 21, 2024
1 parent 110dcfa commit d5ac5f9
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion tests/profiling_v2/test_gunicorn.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
)
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit d5ac5f9

Please sign in to comment.