Advice for debugging heap mismatches? (Win10 Insider build 14926)

Mark Geisert mark@maxrnd.com
Sun Oct 2 09:38:00 GMT 2016


Tony Kelman wrote:
>> Could you paste a complete sample of the error message so we can
>> determine where in the Cygwin code it's coming from?
>
> Still a problem in 14936. Folks, this could be very bad. Anyone at all
> testing the insider builds, or are we going to be blindsided when an
> update goes out to everyone that breaks cygwin?
>
> Here's one:
>
>        1 [main] cp (6432) C:\cygwin64\bin\cp.exe: *** fatal error - cygheap base
          mismatch detected - 0x180302408/0xD92408.
> This problem is probably due to using incompatible versions of the cygwin DLL.
> Search for cygwin1.dll using the Windows Start->Find/Search facility
> and delete all but the most recent version.  The most recent version *should*
> reside in x:\cygwin\bin, where 'x' is the drive on which you have
> installed the cygwin distribution.  Rebooting is also suggested if you
> are unable to find another cygwin DLL.

OK, you're seeing two different problems. Solving the one above is critical. It 
might help solve the other problem shown below; we'll have to see.

You've got two different cygwin1.dll somewhere on your PATH. As your builds 
proceed, they likely start out using the correct cygwin1.dll but sometimes load 
the wrong cygwin1.dll along the way. The error message tells you how to solve 
the problem. But I usually use this method:
     - open a Command Prompt running as Administrator
     - cd c:\ or wherever the root of your Cygwin installation drive is
     - dir /S cygwin1.dll
You might see multiple listings of the same cygwin1.dll due to the crazy WoW 
support but these will all have the same date and size. You want to find the 
cygwin1.dll that has a different date (probably older) and size. That's the 
problematic one; rename it or delete it.

Then try running your build again.

>
>
> And another:
>
>        0 [main] cmake 10384 child_info_fork::abort: C:\cygwin64\bin\cygintl-8.dll:
          Loaded to different address: parent(0x3E3680000) != child(0x190000)

This is a garden-variety fork() failure due to the child having something in its 
address space at 0x3E3680000 such that Cygwin can't load cygintl-8.dll at that 
address where the parent has it. But since you've apparently got two Cygwin 
installations on your PATH, maybe that's complicating things. See if fixing the 
first problem above makes this problem go away too.

..mark

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



More information about the Cygwin mailing list