The easy solution is just to disable mmap, but I would rather figure out why this code suddenly stopped working (the code has not changed for a very long time). Could be related to a recent upgrade of Pillow, numpy or Cython?
Adding print statements, I can it getting stuck on
os.write(fd, b'\x00'), and it only resumes when the server disconnects the client because of the connection timeout.
I don't have time for this, so r10846 disables mmap on osx and win32 so I can move on.
r15010 restores mmap on osx as I can't get it to misbehave any more, and also adds support for mmap on win32.
I don't think it is particularly useful on osx, but on win32 one could conceivably have concurrent sessions? (does MS Windows handle that in a meaningful way?)
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1004