zdaemon
zdaemon copied to clipboard
zdaemon transcript thread dies if disk is full
Two days ago I had a bit of a problem with a disk full. Today my entire web server hung and stopped processing requests.
Long story short, when zdaemon's Transcript thread gets an IOError while writing to a log file, it just dies. zdaemon itself and the child program it is managing remain running. The child's stdout/stderr are now pointing to a pipe that is still open at both ends, but now no process ever reads from it. Things seem to run fine for a couple of days, then the kernel's pipe buffer becomes full and the child blocks in write(). While holding the logging mutex. Fun for the whole family, conveniently delayed from the root cause you think you already fixed.