Git-Wrapper
Git-Wrapper copied to clipboard
deadlocks can happen in IPC::Open3
This is largely system dependent, but because we write stdin before reading stdout/stderr in Git::Wrapper::RUN and read stdout before stderr, we can end up with deadlocks when pipe buffers fill up and we are blocked on another descriptor. Solving this with Open3 gets pretty icky with select() but there are several alternative modules to help with this.
Do you have a test case that reliably reproduces this?
I'll put something together.
@genehack -- got a test worked out and pull request to fix the issue made.
Just to clarify - we are regularly hitting this deadlock with git fetch --tags
when there's 15 or so tags.