From: Ken Brown <kbrown@cornell.edu>
To: Jeremy Drake <cygwin@jdrake.com>
Cc: cygwin-patches@cygwin.com
Subject: Re: [PATCH] fhandler_pipe: add sanity limit to handle loops
Date: Fri, 24 Dec 2021 17:46:55 -0500 [thread overview]
Message-ID: <622d3ac6-fa5d-965c-52da-db7a4463fffd@cornell.edu> (raw)
In-Reply-To: <alpine.BSO.2.21.2112241136160.11760@resin.csoft.net>
On 12/24/2021 2:42 PM, Jeremy Drake wrote:
> On Fri, 24 Dec 2021, Ken Brown wrote:
>
>> I agree that it's hard to see how the line you quoted could cause an
>> exception. But you were using an optimized build, so I'm not sure how
>> reliable the line-number information is.
>>
>> Is it feasible to run your test under strace? If so, you could add some
>> debug_printf statements to examine the values of n_handle and
>> phi->NumberOfHandles. Or what about simply adding an assertion that
>> phi->NumberOfHandles <= n_handle?
>>
>> Ken
>
> This issue is not consistent, I was able to reproduce once on x64 by
> running commands in a loop overnight, but the next time I tried to
> reproduce I ran for over 24 hours without hitting it.
>
> It does seem to happen much more often on Windows on ARM64 (so much so
> that at first I thought it was an issue with their emulation). With this
> patch I have not seen the issue again.
So can you test your diagnosis by removing your patch and adding an assertion?
> Also, it seems to have started cropping up in msys2's CI when the GHA
> runner was switched from "windows-2019" to "windows-2022".
And does your patch help here too?
> I forgot to give a full link to the MSYS2 issue where I have been
> investigating this:
> https://github.com/msys2/MSYS2-packages/issues/2752
Actually I think I might see a small bug in the code. But even if I'm right, it
would result in n_handle being unnecessarily big rather than too small, so it
wouldn't explain what you're seeing.
Takashi, in fhandler_pipe.cc:1225, shouldn't you use offsetof(struct
_PROCESS_HANDLE_SNAPSHOT_INFORMATION, Handles) instead of 2*sizeof(ULONG_PTR),
to take account of possible padding? (And there's a similar issue in
fhandler_pipe.cc:1296.)
Ken
next prev parent reply other threads:[~2021-12-24 22:47 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-23 23:10 Jeremy Drake
2021-12-24 0:06 ` Ken Brown
2021-12-24 0:29 ` Jeremy Drake
2021-12-24 17:17 ` Ken Brown
2021-12-24 19:42 ` Jeremy Drake
2021-12-24 22:46 ` Ken Brown [this message]
2021-12-24 23:42 ` Jeremy Drake
2021-12-25 0:39 ` Jeremy Drake
2021-12-25 3:19 ` Takashi Yano
2021-12-25 3:47 ` Jeremy Drake
2021-12-25 4:12 ` Takashi Yano
2021-12-25 5:40 ` Jeremy Drake
2021-12-25 17:10 ` Takashi Yano
2021-12-25 17:16 ` Takashi Yano
2021-12-25 19:00 ` Marco Atzeri
2021-12-25 19:20 ` Jeremy Drake
2021-12-25 22:18 ` Ken Brown
2021-12-25 23:00 ` Jeremy Drake
2021-12-26 3:04 ` Ken Brown
2021-12-26 4:56 ` Jeremy Drake
2021-12-26 15:09 ` Ken Brown
2021-12-26 16:04 ` Ken Brown
2021-12-26 16:24 ` Ken Brown
2021-12-26 21:35 ` Jeremy Drake
2021-12-26 22:18 ` Ken Brown
2021-12-26 22:43 ` Jeremy Drake
2021-12-26 23:12 ` Ken Brown
2021-12-26 23:23 ` Jeremy Drake
2021-12-27 2:42 ` Ken Brown
2021-12-27 21:12 ` Jeremy Drake
2021-12-29 21:59 ` Ken Brown
2021-12-29 23:29 ` Jeremy Drake
2021-12-27 20:01 ` Jon Turney
2021-12-29 5:45 ` Jeremy Drake
2021-12-30 15:44 ` Jon Turney
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=622d3ac6-fa5d-965c-52da-db7a4463fffd@cornell.edu \
--to=kbrown@cornell.edu \
--cc=cygwin-patches@cygwin.com \
--cc=cygwin@jdrake.com \
/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).