python-markdown-graphviz
python-markdown-graphviz copied to clipboard
Hang when output file size exceeds OS pipe buffer size
Basically, you're tripping over this warning from the Python manual:
Warning: Use
communicate()
rather thanstdin.write()
,stdout.read()
orstderr.read()
to avoid deadlocks due to any of the other OS pipe buffers filling up and blocking the child process.
...though I also noticed that you were making a couple of other mistakes in your use of subprocess:
Warning: Passing
shell=True
can be a security hazard if combined with untrusted input. See the warning under Frequently Used Arguments for details.Note that on Windows, you cannot set
close_fds
to true and also redirect the standard handles by setting stdin, stdout or stderr.
I have a fix (plus some code cleanups) ready to submit but, with no license specified, I'm wary of submitting a pull request where the world can see and use my changes.