plug
plug copied to clipboard
Crashed plugins cause host application to hang
If the plugin panics during operation it can cause the host application to hang in the SendRecv() function. There should be a looped timeout on the receive that check to ensure that the sub-process is still running. Ideally, the function would return the panic message as an error if the sub-process dies.
Hint: setting a SetReadDeadline before the Read call in transport.go should make the timeout easy, then it just needs to be looped in the SendRecv function if the error is a timeout and the subprocess is still running.