Subject: bug#22344: 25.0.50 (and 24.5.1, 24.4); Sending 4097 bytes to a subprocess hangs Emacs on Windows 8 and 10

From: Clément Pit--Claudel <[email-masked]>
Date: Thu, 14 Jan 2016 13:30:30 -0500

On 01/14/2016 01:01 PM, Eli Zaretskii wrote:
>> Cc: [email-masked]
>> From: Clément Pit--Claudel <[email-masked]>
>> Date: Wed, 13 Jan 2016 19:48:38 -0500
>>
>> Eli, there's something magical about your debugging abilities.
>> I downloaded and compiled the latest master on Windows 8; I could reproduce the bug there. Then I checked out emacs-25 and recompiled, and the bug seems to be gone! Amazing.
> 
> I wish I had such magic, but I don't.  It's just a lot of hard work,
> that's all.  But thank you for your kind words.
> 
>> This is only for my personal curiosity, but would you mind expanding a bit on what the issue was (and how you found out)? I read the commit message and looked at the diff, but I don't think I understood everything from there. Did you have to look at node.js' source code? Would it be helpful for me to file a bug with node.js?
> 
> I'm not entirely sure what caused the issue.  From the Emacs side, it
> looked like the other end of the pipe wasn't read at all: each time
> Emacs called _write, it got the return value of -1 with errno set to
> ENOSPC, which means the pipe's buffer is full.  No other program with
> which I tried the same test case did this.  With those other programs,
> after a few first attempts which returned -1, _write started to return
> positive values, meaning that it succeeded to write some part of the
> stuff.
> (...)

Thanks a lot for the explanations! I've raised an issue with the Node.js people, inviting them to join this discussion if there was interest about fixing this on their side.

Cheers,
Clément.