X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Date: Thu, 1 Mar 2012 11:51:39 +0100 From: Corinna Vinschen To: cygwin AT cygwin DOT com Subject: Re: cygheap base mismatch detected Message-ID: <20120301105139.GF2257@calimero.vinschen.de> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <4F4E7CC8 DOT 9090804 AT cwilson DOT fastmail DOT fm> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <4F4E7CC8.9090804@cwilson.fastmail.fm> User-Agent: Mutt/1.5.21 (2010-09-15) Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com On Feb 29 14:30, Charles Wilson wrote: > I've been running into a strange "error" lately (that is, I first > noticed it for sure on 1.7.10, but it MIGHT have occurred also on 1.7.9. > It persists on 1.7.11). cygcheck -- and *only* cygcheck -- is reporting > a cygheap base mismatch but only on an XP64 machine: > > $ cygcheck -cd cygwin > 1 [main] cygcheck (3756) C:\cygwin\bin\cygcheck.exe: *** fatal > error - cygheap base mismatch detected - 0x61270870/0x2170870. > 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. > Cygwin Package Information > Package Version > cygwin 1.7.11-1 > > (Note that cygcheck actually *does* complete the requested command, > after the error message from (cygwin1.dll/dcrt0.cc?) is printed. Very strange. For two reasons. First of all, why is the mismatch message printed at all? The code in question is basically: if (res->cygheap != (void *) &_cygheap_start) multiple_cygwin_problem (...); But res->cygheap and &_cygheap_start are apparently identical, so why is multiple_cygwin_problem called? And then multiple_cygwin_problem calls api_fatal to print the message which means that ultimately TerminateProcess() is called. I tried that on my XP64 test machine and cygcheck worked fine. Could you do a parallel installation on the same machine and see how it behaves there? Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- 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