public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Takashi Yano <takashi.yano@nifty.ne.jp>
To: cygwin@cygwin.com
Cc: Adam Dinwoodie <adam@dinwoodie.org>
Subject: Re: Resizing window while showing git log locks up Command Line
Date: Thu, 22 Dec 2022 18:17:28 +0900	[thread overview]
Message-ID: <20221222181728.89ffee4e52192f270ccbef5a@nifty.ne.jp> (raw)
In-Reply-To: <CA+kUOanYkNMXNvcUaX5sUX+nmbAU3erNvJ-WD3YTaN8ccdsTDQ@mail.gmail.com>

On Wed, 21 Dec 2022 21:30:35 +0000
Adam Dinwoodie wrote:
> On Wed, 21 Dec 2022 at 16:08, Gregory Mason via Cygwin wrote:
> >
> > Hello Cygwin volunteers,
> >
> > I was asked to forward this bug report from the git-for-windows bug report: https://github.com/git-for-windows/git/issues/4060
> > Original bug report from garretwilson
> >
> > > Find a Git repository with a long commit history.
> > > Enter `git log`
> > > Git will show the log history and wait for you to page through the history or hit q to exit.
> > > Press Win+Left-Arrow to snap the window to the left side of the screen.
> > > The window is now hung. Nothing can be typed to get it un-hung. Typing q does nothing. Typing Ctrl+C does nothing. Typing <Enter> does nothing. > The only way out of this is to close the terminal window and start a new Command Prompt or PowerShell session.
> > >
> > > I've reproduced this with Command Line and with PowerShell 7.2.6.
> >
> > I am also experiencing this issue with the following setup:
> > CYGWIN_NT-10.0-19044 version 3.4.3-1.x86_64 (runneradmin@fv-az479-541) (gcc version 11.3.0 (GCC) ) 2022-12-16 12:38 UTC
> >
> > Windows 10
> > Version 21H2
> > Installed on    ?7/?11/?2022
> > OS build        19044.2251
> > Experience      Windows Feature Experience Pack 120.2212.4180.0
> >
> > If you need further information, please let me know.
> 
> This looks like it's an issue with less, which will be the pager that
> Git is using. I've just verified I can reproduce it by running
> `C:\cygwin64\bin\less.exe C:\cygwin64\var\log\setup.log` from within a
> PowerShell terminal, then resizing the terminal; it doesn't need to be
> a "snap" to trigger the behaviour.
> 
> Somewhat to my surprise, `more` and `vim` don't exhibit this behaviour.

Thanks for the report. I looked into this problem, and found
the cause. less uses longjmp in signal handler, and if signal
handler is called while cygwin acquiring the mutex, the mutex
will not be released. This causes deadlock.

I will submit a patch for this issue shortly.

-- 
Takashi Yano <takashi.yano@nifty.ne.jp>

  reply	other threads:[~2022-12-22  9:17 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-21 16:07 Gregory Mason
2022-12-21 21:30 ` Adam Dinwoodie
2022-12-22  9:17   ` Takashi Yano [this message]
2022-12-22 13:54     ` Takashi Yano

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=20221222181728.89ffee4e52192f270ccbef5a@nifty.ne.jp \
    --to=takashi.yano@nifty.ne.jp \
    --cc=adam@dinwoodie.org \
    --cc=cygwin@cygwin.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).