I had a closer look at this based on your feedback, and I found out that my executable file is being opened with O_NONBLOCK (before it gets sent over a unix socket and eventually mmaped and pread into memory).
I can prepare a different MR to remove the nonblock if that's preferable?