Somehow calling bzrlib.trace.note is triggering a EAGAIN or similar... presumably it's trying to write to stderr, and that is what is failing. I wouldn't expect that error from a non-blocking file descriptor, and I wouldn't expect stderr to be non-blocking, but I guess at least one of my assumptions there is wrong.
It might be triggered by something like the parent process not reading the stderr output as fast the child is generating it (or not reading stderr at all until the process is finished)?
Somehow calling bzrlib.trace.note is triggering a EAGAIN or similar... presumably it's trying to write to stderr, and that is what is failing. I wouldn't expect that error from a non-blocking file descriptor, and I wouldn't expect stderr to be non-blocking, but I guess at least one of my assumptions there is wrong.
It might be triggered by something like the parent process not reading the stderr output as fast the child is generating it (or not reading stderr at all until the process is finished)?