From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.bugs Subject: bug#5037: Asserion failure in draw_row_fringe_bitmaps Date: Wed, 25 Nov 2009 10:51:31 -0500 Message-ID: Reply-To: Stefan Monnier , 5037@emacsbugs.donarmstrong.com NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1259165268 30510 80.91.229.12 (25 Nov 2009 16:07:48 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 25 Nov 2009 16:07:48 +0000 (UTC) To: submit@emacsbugs.donarmstrong.com Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Nov 25 17:07:40 2009 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1NDKP2-00041j-6C for geb-bug-gnu-emacs@m.gmane.org; Wed, 25 Nov 2009 17:07:36 +0100 Original-Received: from localhost ([127.0.0.1]:60780 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NDKP1-0000TC-JV for geb-bug-gnu-emacs@m.gmane.org; Wed, 25 Nov 2009 11:07:35 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NDKOx-0000Sb-3G for bug-gnu-emacs@gnu.org; Wed, 25 Nov 2009 11:07:31 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NDKOr-0000O7-E1 for bug-gnu-emacs@gnu.org; Wed, 25 Nov 2009 11:07:29 -0500 Original-Received: from [199.232.76.173] (port=55176 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NDKOr-0000O4-8O for bug-gnu-emacs@gnu.org; Wed, 25 Nov 2009 11:07:25 -0500 Original-Received: from rzlab.ucr.edu ([138.23.92.77]:36042) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1NDKOq-0006ip-J5 for bug-gnu-emacs@gnu.org; Wed, 25 Nov 2009 11:07:25 -0500 Original-Received: from rzlab.ucr.edu (rzlab.ucr.edu [127.0.0.1]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id nAPG7MCM001778; Wed, 25 Nov 2009 08:07:22 -0800 Original-Received: (from debbugs@localhost) by rzlab.ucr.edu (8.14.3/8.14.3/Submit) id nAPG09Pg032742; Wed, 25 Nov 2009 08:00:09 -0800 Resent-Date: Wed, 25 Nov 2009 08:00:09 -0800 X-Loop: owner@emacsbugs.donarmstrong.com Resent-From: Stefan Monnier Resent-To: bug-submit-list@donarmstrong.com Resent-CC: Emacs Bugs 2Resent-Date: Wed, 25 Nov 2009 16:00:08 +0000 Resent-Message-ID: Resent-Sender: owner@emacsbugs.donarmstrong.com X-Emacs-PR-Message: report 5037 X-Emacs-PR-Package: emacs X-Emacs-PR-Keywords: Original-Received: via spool by submit@emacsbugs.donarmstrong.com id=B.125916429932111 (code B ref -1); Wed, 25 Nov 2009 16:00:08 +0000 Original-Received: (at submit) by emacsbugs.donarmstrong.com; 25 Nov 2009 15:51:39 +0000 X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available. hammytokens:Tokens not available. Original-Received: from ironport2-out.pppoe.ca (ironport2-out.teksavvy.com [206.248.154.183]) by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id nAPFpbqu032107 for ; Wed, 25 Nov 2009 07:51:38 -0800 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AsgFALbhDEtFpYc//2dsb2JhbACBTY56AcVLgiaCDASKFg X-IronPort-AV: E=Sophos;i="4.47,286,1257138000"; d="scan'208";a="49996826" Original-Received: from 69-165-135-63.dsl.teksavvy.com (HELO pastel.home) ([69.165.135.63]) by ironport2-out.pppoe.ca with ESMTP; 25 Nov 2009 10:51:31 -0500 Original-Received: by pastel.home (Postfix, from userid 20848) id 21D9580E3; Wed, 25 Nov 2009 10:51:31 -0500 (EST) X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2) Resent-Date: Wed, 25 Nov 2009 11:07:29 -0500 X-BeenThere: bug-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:32912 Archived-At: Package: Emacs Version: 23.1.50 Please describe exactly what actions triggered the bug and the precise symptoms of the bug. If you can, give a recipe starting from `emacs -Q': I got an assertion failure in draw_row_fringe_bitmaps: xassert (interrupt_input_blocked); when resizing the frame while Gnus was waiting for network data (or connection). It seems there's a BLOCK_INPUT missing somewhere long that path. I've added a BLOCK_INPUT in event_handler_gdk and it seems to work, but I don't understand enough of how those things work to know whether that's the right place. Can someone confirm that the patch below is right? Stefan === modified file 'src/xterm.c' --- src/xterm.c 2009-11-24 17:03:04 +0000 +++ src/xterm.c 2009-11-25 15:35:23 +0000 @@ -5738,6 +5738,45 @@ { XEvent *xev = (XEvent *) gxev; + /* It appears we need to block input somewhere around here. + Otherwise we can get an assertion failure in + draw_row_fringe_bitmaps which checks interrupts are blocked: + + #0 0xb7fe1424 in __kernel_vsyscall () + #1 0xb7386bd6 in kill () from /lib/i686/cmov/libc.so.6 + #2 0x08188533 in abort () at emacs.c:432 + #3 0x081748c7 in draw_row_fringe_bitmaps (w=0x7a69, row=0x8fa3978) + at fringe.c:881 + #4 0x0807b563 in expose_line (w=0x8b10f58, row=0x8fa3978, r=0xbfffbdcc) + at xdisp.c:24141 + #5 0x0807f289 in expose_window (w=0x8b10f58, fr=0xbfffbe34) at xdisp.c:24365 + #6 0x0807f697 in expose_window_tree (w=0x8b10f58, r=0xbfffbe34) + atup xdisp.c:24438 + #7 0x08094834 in expose_frame (f=0x8b10cc8, x=95, y=252, w=99, h=5) + at xdisp.c:24495 + #8 0x0814f13c in handle_one_xevent (dpyinfo=0x8a27000, eventp=0xbfffc65c, + finish=0xbfffc3e4, hold_quit=0x0) at xterm.c:6095 + #9 0x08150db9 in x_dispatch_event (event=0xbfffc65c, display=0x89fd000) + at xterm.c:7026 + #10 0x08150e68 in event_handler_gdk (gxev=0xbfffc65c, ev=0x8a11148, data=0x0) + at xterm.c:5766 + #11 0xb7bbf558 in ?? () from /usr/lib/libgdk-x11-2.0.so.0 + #12 0xb7bc113d in ?? () from /usr/lib/libgdk-x11-2.0.so.0 + #13 0xb7bc154f in ?? () from /usr/lib/libgdk-x11-2.0.so.0 + #14 0xb782ee98 in g_main_context_dispatch () from /lib/libglib-2.0.so.0 + #15 0x08180034 in xg_select (max_fds=10, rfds=0xbfffcba8, wfds=0x0, efds=0x0, + timeout=0xbfffcb1c) at xgselect.c:135 + #16 0x08290fdc in wait_reading_process_output (time_limit=0, microsecs=10000, + read_kbd=0, do_display=0, wait_for_cell=..., wait_proc=0x8f35708, + just_wait_proc=0) at process.c:4930 + #17 0x08294aff in Faccept_process_output (process=..., seconds=..., + millisec=..., just_this_one=...) at process.c:4311 + + Also, another caller to x_dispatch_event (xmenu.c:popup_get_selection) + also warns that the interrupts need to be blocked by its callers. + */ + BLOCK_INPUT; + if (current_count >= 0) { struct x_display_info *dpyinfo; @@ -5765,6 +5804,8 @@ else current_finish = x_dispatch_event (xev, xev->xany.display); + UNBLOCK_INPUT; + if (current_finish == X_EVENT_GOTO_OUT || current_finish == X_EVENT_DROP) return GDK_FILTER_REMOVE;