From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#17510: 24.3.91; Problem with `emacs --daemon' in cygw32 build Date: Sat, 24 May 2014 15:59:07 +0300 Message-ID: <83sinzjpt0.fsf@gnu.org> References: <53764FD9.8090600@cornell.edu> <53766FBC.1000601@cornell.edu> <5377F335.2080609@cornell.edu> <831tvremfz.fsf@gnu.org> <5378C404.8050405@cornell.edu> <83wqdjceah.fsf@gnu.org> <53790BAB.3020909@cornell.edu> <837g5hd8cf.fsf@gnu.org> <537A5AB4.8070602@cornell.edu> <538092B6.9000807@cornell.edu> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1400936427 25478 80.91.229.3 (24 May 2014 13:00:27 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 24 May 2014 13:00:27 +0000 (UTC) Cc: 17510@debbugs.gnu.org, dmantipov@yandex.ru To: Ken Brown Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat May 24 15:00:20 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1WoBYh-0001C2-0g for geb-bug-gnu-emacs@m.gmane.org; Sat, 24 May 2014 15:00:19 +0200 Original-Received: from localhost ([::1]:47930 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WoBYg-0004Av-Md for geb-bug-gnu-emacs@m.gmane.org; Sat, 24 May 2014 09:00:18 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:48980) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WoBYX-00047X-MQ for bug-gnu-emacs@gnu.org; Sat, 24 May 2014 09:00:14 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WoBYS-0005Hy-Rg for bug-gnu-emacs@gnu.org; Sat, 24 May 2014 09:00:09 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:59801) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WoBYS-0005Gs-PW for bug-gnu-emacs@gnu.org; Sat, 24 May 2014 09:00:04 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1WoBYR-0003kv-LQ for bug-gnu-emacs@gnu.org; Sat, 24 May 2014 09:00:03 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 24 May 2014 13:00:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 17510 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 17510-submit@debbugs.gnu.org id=B17510.140093634114316 (code B ref 17510); Sat, 24 May 2014 13:00:03 +0000 Original-Received: (at 17510) by debbugs.gnu.org; 24 May 2014 12:59:01 +0000 Original-Received: from localhost ([127.0.0.1]:58678 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WoBXQ-0003il-8E for submit@debbugs.gnu.org; Sat, 24 May 2014 08:59:00 -0400 Original-Received: from mtaout28.012.net.il ([80.179.55.184]:37519) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WoBXM-0003iT-F7 for 17510@debbugs.gnu.org; Sat, 24 May 2014 08:58:57 -0400 Original-Received: from conversion-daemon.mtaout28.012.net.il by mtaout28.012.net.il (HyperSendmail v2007.08) id <0N6200M00X04EA00@mtaout28.012.net.il> for 17510@debbugs.gnu.org; Sat, 24 May 2014 15:56:52 +0300 (IDT) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout28.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0N6200L03XAS1Y30@mtaout28.012.net.il>; Sat, 24 May 2014 15:56:52 +0300 (IDT) In-reply-to: <538092B6.9000807@cornell.edu> X-012-Sender: halo1@inter.net.il X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:89448 Archived-At: > Date: Sat, 24 May 2014 08:38:14 -0400 > From: Ken Brown > CC: 17510@debbugs.gnu.org, dmantipov@yandex.ru > > My guess as to the cause of this bug was completely wrong. What happens > in my recipe is that the pointer dpyinfo->w32_id_name is freed twice. > (This is done in x_delete_display each time the only existing client > frame is deleted.) An attempt to create a client frame for the third > time then leads to a crash because of malloc corruption. > > I have no idea why this problem only showed up after Dmitry's code > cleanup. The only thing I can think of is that maintaining a list of > display names, with insertions and deletions, masked the malloc corruption. > > I think the right fix here would be to really delete the display when > x_delete_display is called, free all resources, and set things up so > that everything will be re-initialized if a new frame is created. But > this seems like a lot of trouble, possibly with unintended consequences. > The following is a much simpler workaround: > > === modified file 'src/w32term.c' > --- src/w32term.c 2014-04-16 14:00:39 +0000 > +++ src/w32term.c 2014-05-24 12:13:15 +0000 > @@ -6426,7 +6426,9 @@ > if (dpyinfo->palette) > DeleteObject (dpyinfo->palette); > } > +#ifndef CYGWIN > xfree (dpyinfo->w32_id_name); > +#endif > > w32_reset_fringes (); > } > > I would of course add a comment explaining this. What do you think? This looks OK to me, but I wonder: is it really correct not to free w32_id_name at all? And if that is correct, why only on Cygwin? Does the Cygwin-w32 build also use a single dpyinfo object, like the native Windows build? If so, perhaps we need not free this in both these builds. IOW, I think your suggested change is OK for the emacs-24 branch, but on the trunk I'd suggest to remove the xfree line altogether. Thanks.