From: Ken Brown <kbrown@cornell.edu>
To: "Henry S. Thompson" <ht@inf.ed.ac.uk>
Cc: cygwin@cygwin.com
Subject: Re: Another pipe-related problem?
Date: Wed, 10 Nov 2021 13:03:09 -0500 [thread overview]
Message-ID: <83df50b8-5c0c-41b9-1e9e-4ea6bfa3d69f@cornell.edu> (raw)
In-Reply-To: <f5bfss33oxi.fsf@ecclerig.inf.ed.ac.uk>
On 11/10/2021 12:23 PM, Henry S. Thompson wrote:
> Ken Brown via Cygwin writes:
>
>> On 11/9/2021 9:53 PM, Ken Brown via Cygwin wrote:
>>> Back to the drawing board.
>>
>> It finally occurred to me to stop looking for a bug in
>> fhandler_pipe::raw_read and instead see if something is in fact
>> repeatedly writing to the pipe, so that drain_signal_event_pipe
>> never finishes. Putting a breakpoint at fhandler_pipe::raw_write, I
>> found that this is in fact the case. While the main thread is
>> repeatedly reading from the pipe, a second thread is repeatedly
>> writing to it. Here's the backtrace of that thread:
>
> Argh. Thanks for the hard labour on this. This is not a part of the
> XEmacs code I have any experience of. Is there any clue you can give
> about how things changed in all the September commits to
> fhandler_pipe.cc that might have exposed the XEmacs bug?
The main change was that we stopped using Win32 Overlapped I/O
(https://docs.microsoft.com/en-us/windows/win32/sync/synchronization-and-overlapped-input-and-output)
and switched to using the NT API. As a result, pipe I/O became much more
efficient. It wouldn't surprise me if the efficiency alone is what exposed the bug.
The good news is that the bug doesn't seem to occur in XEmacs 21.4 (on 32-bit
Cygwin). So one way to approach this would be to bisect the XEmacs git repo to
find the commit that introduced the bug. You'd probably have to do the work on
32-bit Cygwin since, if I remember correctly, XEmacs 21.4 didn't build on 64-bit
Cygwin.
Ken
next prev parent reply other threads:[~2021-11-10 18:03 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-08 13:12 Henry S. Thompson
2021-11-08 14:35 ` Ken Brown
2021-11-08 18:52 ` Ken Brown
2021-11-09 10:55 ` Henry S. Thompson
2021-11-09 14:11 ` Ken Brown
2021-11-09 14:47 ` Henry S. Thompson
2021-11-09 22:16 ` Ken Brown
2021-11-09 22:20 ` Ken Brown
2021-11-10 2:53 ` Ken Brown
2021-11-10 3:51 ` Backwoods BC
2021-11-10 14:47 ` Ken Brown
2021-11-10 17:23 ` Henry S. Thompson
2021-11-10 18:03 ` Ken Brown [this message]
2021-11-10 18:42 ` Henry S. Thompson
2021-11-10 23:07 ` Andrey Repin
2021-11-11 11:06 ` Andrey Repin
2021-11-11 14:16 ` Ken Brown
2021-12-08 21:09 ` XEmacs versus Cygwin 3.3 (was Re: Another pipe-related problem?) Henry S. Thompson
2021-12-09 8:39 ` Aidan Kehoe
2021-11-09 23:22 ` Another pipe-related problem? Takashi Yano
2021-11-09 23:29 ` Takashi Yano
2021-11-09 23:48 ` Takashi Yano
2021-11-10 0:16 ` Takashi Yano
2021-11-10 0:37 ` Takashi Yano
2021-11-10 2:02 ` Ken Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=83df50b8-5c0c-41b9-1e9e-4ea6bfa3d69f@cornell.edu \
--to=kbrown@cornell.edu \
--cc=cygwin@cygwin.com \
--cc=ht@inf.ed.ac.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).