From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dima Kogan Newsgroups: gmane.emacs.bugs Subject: bug#21509: 25.0.50; X11 error: BadPixmap when creating first emacsclient frame; and memory leak Date: Thu, 17 Sep 2015 21:41:00 -0700 Message-ID: <877fno9w6b.fsf@secretsauce.net> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: ger.gmane.org 1442551343 14625 80.91.229.3 (18 Sep 2015 04:42:23 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 18 Sep 2015 04:42:23 +0000 (UTC) To: 21509@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Sep 18 06:42:11 2015 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 1ZcnUx-0002xR-5X for geb-bug-gnu-emacs@m.gmane.org; Fri, 18 Sep 2015 06:42:11 +0200 Original-Received: from localhost ([::1]:35110 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZcnUw-0007gz-BT for geb-bug-gnu-emacs@m.gmane.org; Fri, 18 Sep 2015 00:42:10 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:47326) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZcnUs-0007gp-Em for bug-gnu-emacs@gnu.org; Fri, 18 Sep 2015 00:42:07 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZcnUo-0005lq-DJ for bug-gnu-emacs@gnu.org; Fri, 18 Sep 2015 00:42:06 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:44378) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZcnUo-0005lm-A6 for bug-gnu-emacs@gnu.org; Fri, 18 Sep 2015 00:42:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1ZcnUo-0000HJ-1G for bug-gnu-emacs@gnu.org; Fri, 18 Sep 2015 00:42:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Dima Kogan Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 18 Sep 2015 04:42:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 21509 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.14425512741008 (code B ref -1); Fri, 18 Sep 2015 04:42:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 18 Sep 2015 04:41:14 +0000 Original-Received: from localhost ([127.0.0.1]:36588 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZcnU1-0000GB-A9 for submit@debbugs.gnu.org; Fri, 18 Sep 2015 00:41:13 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:37000) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZcnTz-0000G2-4E for submit@debbugs.gnu.org; Fri, 18 Sep 2015 00:41:11 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZcnTx-0004qX-T8 for submit@debbugs.gnu.org; Fri, 18 Sep 2015 00:41:10 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:36598) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZcnTx-0004qT-Qp for submit@debbugs.gnu.org; Fri, 18 Sep 2015 00:41:09 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:46994) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZcnTw-0007bI-MX for bug-gnu-emacs@gnu.org; Fri, 18 Sep 2015 00:41:09 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZcnTs-0004nI-Cy for bug-gnu-emacs@gnu.org; Fri, 18 Sep 2015 00:41:08 -0400 Original-Received: from out3-smtp.messagingengine.com ([66.111.4.27]:54890) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZcnTs-0004lG-8o for bug-gnu-emacs@gnu.org; Fri, 18 Sep 2015 00:41:04 -0400 Original-Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 6133D20944 for ; Fri, 18 Sep 2015 00:41:02 -0400 (EDT) Original-Received: from frontend1 ([10.202.2.160]) by compute5.internal (MEProxy); Fri, 18 Sep 2015 00:41:02 -0400 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=secretsauce.net; h=content-type:date:from:message-id:mime-version:subject:to :x-sasl-enc:x-sasl-enc; s=mesmtp; bh=cPmlk75c/uWM9En6yEpcaJ4bgro =; b=sU4lOYeQkTxQ+y/MbF1WZP/hSUnwbTx76iRMlE2SqXjIF0nBoOofT2Jt7oy fVKUGgzHW3SK/asCRvUf0922qJYhZUYwgAAik5N/6Zsnubx5J7W1bD96CVMrKGRa S0natC9eMKBY15iiTrs8rPz3CJPAPzZRaStZwiK4PhXmluDw= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-sasl-enc:x-sasl-enc; s=smtpout; bh=cP mlk75c/uWM9En6yEpcaJ4bgro=; b=tF0c+Fnox6IbxBPdOslXwrtqLNVitfWaFY p5X6q/PGhLDi4PeWu63YyalDNO/dfE2RwXCEJfAuojSlKqohxGvYGk54ZP8ZaPFJ JpRSYQWy7JViCodFqhrUk2817mTke8m6TKciALv1sbZOkWHELNwRsYfiIuDO3qCk v1lbOpnyY= X-Sasl-enc: vx52r94KzWGKpuC1FlZ7g+SvV0Lbn1GMR2y8oyKqmrFJ 1442551261 Original-Received: from shorty.local (50-1-153-216.dsl.dynamic.fusionbroadband.com [50.1.153.216]) by mail.messagingengine.com (Postfix) with ESMTPA id DBFD8C00022 for ; Fri, 18 Sep 2015 00:41:01 -0400 (EDT) Original-Received: from ip6-localhost ([::1] helo=shorty) by shorty.local with esmtp (Exim 4.84) (envelope-from ) id 1ZcnTo-00020P-Hp for bug-gnu-emacs@gnu.org; Thu, 17 Sep 2015 21:41:00 -0700 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). 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: 208.118.235.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:106698 Archived-At: --=-=-= Content-Type: text/plain Hi. I'm continuing the hunt for memory leaks: http://lists.gnu.org/archive/html/emacs-devel/2015-09/msg00619.html As noted in that post, even after fixing the winner-mode problem, memory still leaks, albeit slowly. Chasing down that leak led me to this bug. The issue is an X11 BadPixmap error thrown maybe 20% of the time when the FIRST client frame is opened. I have only tested with the lucid widgets. Steps: 1. emacs -Q --daemon 2. In bash: while true; do timeout 1 emacsclient -a '' -c; sleep 1; done; So I spawn a new frame kill it after 1 second, then wait 1 more second and repeat. Most of the time this looks like what you'd expect. About 20% of the time, however, the new X window pops up momentarily, and instantly goes away. What's happening internally is apparently an X11 error that blows up the window. This isn't printed anywhere, but I use perf to see it: # perf probe -x /usr/bin/emacs --add 'x_connection_closed error_message:string' ... # perf record -p `pidof emacs` -eprobe_emacs:x_connection_closed ... Ctrl-c when done # perf script emacs-tst 24692 [000] 443392.814048: probe_emacs:x_connection_closed: (4c0000) error_message_string="X protocol error: BadPixmap (invalid Pixmap parameter) on protocol request 55" This clearly shouldn't happen. I've been running my emacs as a daemon for years, however and I've never seen this. It turns out that this happens ONLY if we creates/destroy the only frame. If instead, we 1. create one frame by keeping an instance of the client open 2. Run the above bash snippet to repeatedly create/destroy the second frame, then this X error does not happen, and everything works. Another part of this is that when an X frame dies in this way, we leak memory. The biggest offender is the font system. Normally, when a frame is created, we open some fonts with xftfont_open(). Then when the frame is destroyed x_delete_terminal() is called, which among other things does if (dpyinfo->display) XtCloseDisplay(); which frees the fonts. If we get an X error, however, then x_connection_closed() runs first. This sets dpyinfo->display=0, so the above doesn't run, and the fonts leak. I'm attaching a plot where I sampled the memory usage every second. At the start I had an extra client window open, and we leak memory. Then I closed that client window, and we started leaking memory much faster. Then I created an extra client window again, and the leak slowed down once again. If we can fix the X error, the leak maybe doesn't matter. --=-=-= Content-Type: application/pdf Content-Disposition: attachment; filename=memory_test.pdf Content-Transfer-Encoding: base64 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 SCoRtygbEC076hSD/NIf2lPdTlJLUre+2VpbO/YriZ/FRbtYE6IfFvLiqSSsy6eNDXi3t8pLjvjg 2sx0ad0u8MtYRni2pIZWr9mxU6mIYDcwZG0mfuXxzAr0z+y8ijPEBajnaXbKWhpWEALRqqmFk8fS dBO42NgDNrurKB3uaAF8h775SSDuArB3aXa1UvhOZTPXNrAWO51fdc6S8A1rh/5tFqRVh2VoA1ne pIa01d4z30iWF7H54jde2V+Balpt5aweMUKdq2vl2/VLEoRSG0AZKl8Neqi22AGjar6mJaSgEIhV eRmxAS3U4uQasxmHWjqEatQ/IdijgWJrnAnVX1TbtdYIdyF37njxHZ0qNs2G9BV2WX+jVM03Y0yp cdSM3X61JUeAdOIC4HKqDZAqn0isZpU3+ek/a9FdZLGjjco3akpdgEi4AIz++YpMLbzd24i0rdgR UK2Y1AvArC72OoZ8zi9yAhwkUrPZMXxLboLzy6Tf/GHT18f/ATWYow0KZW5kc3RyZWFtCmVuZG9i ago0IDAgb2JqCiAgIDQ4NjkKZW5kb2JqCjIgMCBvYmoKPDwKICAgL0V4dEdTdGF0ZSA8PAogICAg ICAvYTAgPDwgL0NBIDEgL2NhIDEgPj4KICAgPj4KICAgL0ZvbnQgPDwKICAgICAgL2YtMC0wIDUg MCBSCiAgID4+Cj4+CmVuZG9iago2IDAgb2JqCjw8IC9UeXBlIC9QYWdlCiAgIC9QYXJlbnQgMSAw IFIKICAgL01lZGlhQm94IFsgMCAwIDc5MiA2MTIgXQogICAvQ29udGVudHMgMyAwIFIKICAgL0dy b3VwIDw8CiAgICAgIC9UeXBlIC9Hcm91cAogICAgICAvUyAvVHJhbnNwYXJlbmN5CiAgICAgIC9J IHRydWUKICAgICAgL0NTIC9EZXZpY2VSR0IKICAgPj4KICAgL1Jlc291cmNlcyAyIDAgUgo+Pgpl bmRvYmoKNyAwIG9iago8PCAvTGVuZ3RoIDggMCBSCiAgIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCiAg IC9MZW5ndGgxIDgwNDgKPj4Kc3RyZWFtCnic5Vl7WFTXtV/7rLPPzDnzOmeYAYEBBoZREV8BUVGj ExMTH6nFiEZtSTFBYh5eUUyMQYtiBYmmaBRMfE4UjVVjibEGlNjYEB8ltGmj+Zo2ucaERNMQQ3NJ 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 a3BCDd4h8HZpEL+9E8efwNumYEjgOIFjb3XzsR68dYyL3+rGMaMdfEyox4WjHThKYLbAkSM8fGQn jhiu8xEeHJ5l48N1zLLhsETMdGDGLTaeIfAWGw4dYuNDHTjEhoMHqXywjoNUHJiB6QOCPL0AB6S5 +YAgprmxf78g738b9gti36CN93Vh0IapAgMCU1yYTHYmu9FfgEmdmEgmJBZgggN95EGfwPhOjBuP sdSIFdinAGPIUzECo+lL0bHoFegRGCXQTQ+4BRpkqzEe9RXoKkCnQIc9mjsE2ulpezTaBGo6qgKt 9JhVoMWDSgHKNCgTArxIvShoVdC5NAiZjiCQ1bOCNU+z9P8LF/xvK/Bvr4T/AYVaSLoKZW5kc3Ry ZWFtCmVuZG9iago4IDAgb2JqCiAgIDU4MzkKZW5kb2JqCjkgMCBvYmoKPDwgL0xlbmd0aCAxMCAw IFIKICAgL0ZpbHRlciAvRmxhdGVEZWNvZGUKPj4Kc3RyZWFtCnicXZJNboMwEIX3PoWX6SICDLET yUKq0g2L/qi0BwB7SJCKsQxZcPt6PFEqdQHzefzm6cl2dm5eGjeuPPsIs2lh5cPobIBlvgUDvIfL 6FghuB3Nel+lv5k6z7I43G7LClPjhplpzbPPuLmsYeO7Zzv38MQ459l7sBBGd+G773NLrfbm/Q9M 4Faes7rmFoZo99r5t24CnqXhfWPj/rhu+zj2p/jaPHCR1gVFMrOFxXcGQucuwHSe11wPQ83A2X97 QtFIP5hrF5gWKM3zWJguReJYIh+ID8ikKZOmJC6RK+IKWRJL5CPxEbkgLiJXNnEsTEvyl+gvqS9T fyCO4bWiPArzqBPxCTWUQWIGCcSAGuor7CvyV+ivKL/C/IoyK8wsyVOip6DMAjPLnvo9ZqYMFWYQ pBeoP5BPLHjI99PE48Z38bhHcwshXmF6POnu8NZGB4/35WePU+n7BWZ9rRYKZW5kc3RyZWFtCmVu ZG9iagoxMCAwIG9iagogICAzNDkKZW5kb2JqCjExIDAgb2JqCjw8IC9UeXBlIC9Gb250RGVzY3Jp cHRvcgogICAvRm9udE5hbWUgL0hRWFNKVitEZWphVnVTYW5zCiAgIC9Gb250RmFtaWx5IChEZWph VnUgU2FucykKICAgL0ZsYWdzIDMyCiAgIC9Gb250QkJveCBbIC0xMDIwIC00MTUgMTY4MCAxMTY2 IF0KICAgL0l0YWxpY0FuZ2xlIDAKICAgL0FzY2VudCA5MjgKICAgL0Rlc2NlbnQgLTIzNQogICAv Q2FwSGVpZ2h0IDExNjYKICAgL1N0ZW1WIDgwCiAgIC9TdGVtSCA4MAogICAvRm9udEZpbGUyIDcg MCBSCj4+CmVuZG9iago1IDAgb2JqCjw8IC9UeXBlIC9Gb250CiAgIC9TdWJ0eXBlIC9UcnVlVHlw ZQogICAvQmFzZUZvbnQgL0hRWFNKVitEZWphVnVTYW5zCiAgIC9GaXJzdENoYXIgMzIKICAgL0xh c3RDaGFyIDEyMQogICAvRm9udERlc2NyaXB0b3IgMTEgMCBSCiAgIC9FbmNvZGluZyAvV2luQW5z aUVuY29kaW5nCiAgIC9XaWR0aHMgWyAzMTcgMCAwIDAgMCAwIDAgMCAzOTAgMzkwIDAgMCAwIDAg MCAwIDYzNiA2MzYgNjM2IDYzNiA2MzYgNjM2IDYzNiAwIDYzNiAwIDAgMCAwIDAgMCAwIDAgMCA2 ODYgMCAwIDAgMCAwIDAgMCAwIDAgMCA4NjIgMCAwIDAgMCAwIDAgNjEwIDAgMCAwIDAgMCAwIDAg MCAwIDAgMCAwIDAgMCA1NDkgMCA2MTUgMCAwIDAgMjc3IDAgNTc5IDAgOTc0IDYzMyA2MTEgNjM0 IDAgNDExIDUyMCAzOTIgNjMzIDAgMCAwIDU5MSBdCiAgICAvVG9Vbmljb2RlIDkgMCBSCj4+CmVu ZG9iagoxIDAgb2JqCjw8IC9UeXBlIC9QYWdlcwogICAvS2lkcyBbIDYgMCBSIF0KICAgL0NvdW50 IDEKPj4KZW5kb2JqCjEyIDAgb2JqCjw8IC9DcmVhdG9yIChjYWlybyAxLjE0LjIgKGh0dHA6Ly9j YWlyb2dyYXBoaWNzLm9yZykpCiAgIC9Qcm9kdWNlciAoY2Fpcm8gMS4xNC4yIChodHRwOi8vY2Fp cm9ncmFwaGljcy5vcmcpKQo+PgplbmRvYmoKMTMgMCBvYmoKPDwgL1R5cGUgL0NhdGFsb2cKICAg L1BhZ2VzIDEgMCBSCj4+CmVuZG9iagp4cmVmCjAgMTQKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAw MDEyNDMxIDAwMDAwIG4gCjAwMDAwMDQ5ODQgMDAwMDAgbiAKMDAwMDAwMDAxNSAwMDAwMCBuIAow MDAwMDA0OTYxIDAwMDAwIG4gCjAwMDAwMTE5ODQgMDAwMDAgbiAKMDAwMDAwNTA5MyAwMDAwMCBu IAowMDAwMDA1MzA3IDAwMDAwIG4gCjAwMDAwMTEyNDAgMDAwMDAgbiAKMDAwMDAxMTI2MyAwMDAw MCBuIAowMDAwMDExNjkwIDAwMDAwIG4gCjAwMDAwMTE3MTMgMDAwMDAgbiAKMDAwMDAxMjQ5NiAw MDAwMCBuIAowMDAwMDEyNjI0IDAwMDAwIG4gCnRyYWlsZXIKPDwgL1NpemUgMTQKICAgL1Jvb3Qg MTMgMCBSCiAgIC9JbmZvIDEyIDAgUgo+PgpzdGFydHhyZWYKMTI2NzcKJSVFT0YK --=-=-=--