process.wait() does not seem to wait enough
Setup Information
- ravenpy version: 0.16.0
- Python version: 3.12.7
- Operating System: Windows
Description
in ravenpy.py,
process = subprocess.Popen( # noqa: S603
cmd,
cwd=configdir,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
universal_newlines=True,
)`
stdout, stderr = process.communicate(input="\n")
returncode = process.wait()
This part of code does not seem to wait enough, it keeps crashing semi-randomly. If I put a breakpoint and wait or resend the lines, it does not crash.
Steps To Reproduce
No response
Additional context
No response
Contribution
- [ ] I would be willing/able to open a Pull Request to address this bug.
Salut T-C, Merci pour le rapport. RavenPy n'a pas été beaucoup utilisé sur windows, donc pas tellement surpris qu'il y ait des accrocs.
Je n'ai pas vraiment d'idée sur la cause du problème. Peut-être qu'il y a des pistes ici: https://docs.python.org/3/library/subprocess.html#windows-popen-helpers
Ce matin on a aussi fait des tests, avec Charles, étrangement, ça passe le premier coup, mais pas par la suite. J'avais eu ça de mon côté, mais croyais avoir été chanceux. Ça semble au contraire faire parti du patern. Je vais regarder ton lien et voir ce qu'on peut faire. Si je trouve, est ce qu'un truc genre if os.name == 'nt' est correct ou ce n'est pas assez robuste ?
Intéressant, peut-être que RavenPy ne "ferme" pas proprement un processus ou un PIPE.
Si ça règle le problème, ça me va.