Wound up spending the whole afternoon tracking down an "only happens in production" bug where a sub-process would just hang, but only when big chunks of data were involved. Seems that os.write() was trying to write more than the target pipe could handle, so was winding up blocking. To tired to actually confirm that tonight, but if it winds up being confirmed, I'm going to have to go back and look at every case where I've used os.write(). I was under the assumption it would return immediately with the number of bytes written before blocking, something I now see is *not* necessarily implied in the documentation. Have to switch to traditional non-blocking IO on the pipes, it seems.
Pingbacks are closed.