RavenPy icon indicating copy to clipboard operation
RavenPy copied to clipboard

process.wait() does not seem to wait enough

Open TC-FF opened this issue 1 year ago • 3 comments

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.

TC-FF avatar Nov 29 '24 04:11 TC-FF

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

huard avatar Nov 29 '24 14:11 huard

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 ?

TC-FF avatar Nov 29 '24 15:11 TC-FF

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.

huard avatar Nov 29 '24 17:11 huard