ISISComputingGroup / IBEX

Top level repository for IBEX stories
5 stars 2 forks source link

python venv: create utility script #8437

Closed FreddieAkeroyd closed 1 week ago

FreddieAkeroyd commented 3 months ago

On of our Jenkins jobs running python wiki checks crashed, analysis of system log indicated it was actually running python from the network and there must have been a network break meaning system lost contact with running executable, on windows this is an issue as the exe/dll are not cached locally but paged over the network.

See https://github.com/ISISComputingGroup/ibex_wiki_checker/blob/master/run_tests.bat for an example of how a venv is currently created. The jobs currently use the https://github.com/ISISComputingGroup/ibex_utils/blob/master/installation_and_upgrade/define_latest_genie_python.bat script to assign a network build of python, then create a venv and activate it. I was suspicious that the venv had no python DLLs etc in it, it seems venv python.exe just launches the original exe from the network (just look at task manager!). So though you have a separate site-packages etc. you are still vulnerable to network breaks.

acceptance criteria

Time in Planning

1:52:10 18/07/24 00:25:15 08/08/24

jackbdoughty commented 2 months ago

I did this by changing the define_latest_genie_python.bat in IBEX Utils so that when called it installs python under a temporary directory and then sets the global variables. The venv is then created using this local install of python. And then all files referencing define_latest_genie_python.bat are responsible for calling remove_genie_python.bat to remove the installation and unassign the variables. Merge IBEX Utils before other PRs