shywolf9982/mr.developer — comment on commit 914f048bf10035f3853f0259cc65624f478812d6
File: src/mr/developer/git.py line 204
By shywolf9982:

On a side note, even with my code, the buildout still hangs sometimes. However, after my changes, it is sufficient to kill the child process and the buildout "recovers" (well, it gives an error, but before you had to kill _both_ processes, meaning something would be still locked).

And, when you kill the child process, it seems that the problem is always on `git remote show` and `hg showconfig`, which are two commands that produce a lot of output. I wonder if the occasional locking might be related to the warning present in the documentation of the `subprocess` model, specifically:

> Use `communicate()` rather than `.stdin.write`, `.stdout.read` or `.stderr.read` to avoid deadlocks due to any of the other OS pipe buffers filling up and blocking the child process.

Now, we do use `communicate()`, but we also spawn several concurrent processes which produce a lot of output, and we might maybe hit some OS limit, which might be the cause of the problem.