Subject: Re: many cygwin shells/tools (tcsh, fish, bash, and zsh) crashing STATUS_ACCESS_VIOLATION
From: Mark Geisert <[email-masked]>
Cc: [email-masked]
Date: Wed, 11 Aug 2021 22:09:23 -0700
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>

Hi David,

David Dyck via Cygwin wrote:
> First, thanks for digging further into this.
> 
> I'm guessing that I am missing some of the developer pieces that
> assisted you in deducing from

No problem.  I was curious about the possible Win 11 Preview connection and 
happened to have a bit of free time to investigate.  Installing the 
ncurses-debuginfo package gave me debugging symbols for use with gdb.  Calculating 
<exception-address> minus <dll-load-address> from your strace gave me the offset 
into the ncurses DLL of the exception on your system.  Then on my own system I 
have a different <dll-load-address> but adding the offset gives me the 
corresponding <exception-address> on my own system.  The rest was using gdb.

[...]
>>> Another tack could be for somebody *on a working system* install the debuginfo for
>>> ncurses, figure out the exception's address *in the ncurses installed locally*,
>>> run 'more' under gdb after setting a breakpoint at that address.  Poke around to
>>> see what ncurses is doing in that area.  Maybe it's acting on a Windows result
>>> that's busted on the Windows preview.  Or something else.  Good luck with this
>>> route :-/.

I didn't consider that your original libncursesw-10.dll might have been damaged. 
I was kinda fixated on the possibility of Win 11 Preview brokenness ;-).

>> Here's the gdb session from my own Windows 10 machine...
> ... thank you for looking at this in gdb
>>
>> That is all the help/damage I can do at this point.
>> Cheers,
>>
>> ..mark
> 
> I started setup today and observed that the only "pending" actions
> were a bunch of ncurses installs.
> I clicked ok ( and enabled source just in case :-)  ) and watched the
> action begin.
> 
> Uninstall libncurses-devel 6.0-11.20170617 (automatically added)
> Uninstall libncursesw10 6.0-11.20170617 (automatically added)
> Uninstall ncurses 6.0-11.20170617 (automatically added)
> Install libncurses++w10 6.1-1.20190727
> Install libncurses++w10-src 6.1-1.20190727 (source)
> Install libncurses-devel 6.1-1.20190727
> Install libncurses-devel-src 6.1-1.20190727 (source)
> Install libncursesw10 6.1-1.20190727
> Install libncursesw10-src 6.1-1.20190727 (source)
> Install ncurses 6.1-1.20190727
> Install ncurses-src 6.1-1.20190727 (source)
> 
> both bash and more worked
>   ( e.g. bash starts and more doesn't stack dump in this simple case
> 
> 
> c:\cygwin64>cd bin
> c:\cygwin64\bin>path c:\cygwin64\bin;%PATH%
> c:\cygwin64\bin>which which
> /usr/bin/which
> 
> c:\cygwin64\bin>more < NUL
> 
> c:\cygwin64\bin>
> 
> looking back at the downgrade log I see
> 
> Uninstall libncursesw10 6.1-1.20190727 (automatically added)
> Uninstall ncurses 6.1-1.20190727 (automatically added)
> 
> so I think that  I just upgraded to what I had before, not sure if
> something was corrupted before.

That's right, you're back to the version you started with but things are working 
now.  I'm now inclined to think your original ncurses DLL was damaged somehow.  I 
don't know how deeply 'cygcheck -c' checks a package.. It can tell when individual 
files are missing from the package but I don't know if it checksums the files, for 
instance, to discover individual file damage.

I don't think there's anything more to do here but run your working system :-).
Cheers,

..mark

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple