From b86722f8b999b1cdd762b81c3ac20336c7561ce8 Mon Sep 17 00:00:00 2001 From: Jonathan Stein Date: Tue, 21 Apr 2026 15:00:06 -0500 Subject: [PATCH] :bug: fix(venv): insidious creation/cleanup race condition Suffixes the venv created with the running shell's PID, ensuring that each call generates a venv at a unique location. Also, explicitly cleans the venv up at the end to avoid too many piling up. Fixes #858, #899. --- py/private/run.tmpl.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/py/private/run.tmpl.sh b/py/private/run.tmpl.sh index f13eb2ca4..130c45955 100644 --- a/py/private/run.tmpl.sh +++ b/py/private/run.tmpl.sh @@ -35,7 +35,8 @@ function python_location { } VENV_TOOL="$(rlocation {{VENV_TOOL}})" -VIRTUAL_ENV="$(alocation "${RUNFILES_DIR}/{{ARG_VENV_NAME}}")" +VIRTUAL_ENV="$(alocation "${RUNFILES_DIR}/{{ARG_VENV_NAME}}.$$")" +trap 'rm -rf "${VIRTUAL_ENV}"' EXIT export VIRTUAL_ENV "${VENV_TOOL}" \ @@ -58,4 +59,4 @@ if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then hash -r 2> /dev/null fi -exec "{{EXEC_PYTHON_BIN}}" {{INTERPRETER_FLAGS}} "$(rlocation {{ENTRYPOINT}})" "$@" \ No newline at end of file +exec "{{EXEC_PYTHON_BIN}}" {{INTERPRETER_FLAGS}} "$(rlocation {{ENTRYPOINT}})" "$@"