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#6604: 23.2; Crashes in GC on MS-Windows Date: Sat, 10 Jul 2010 18:52:09 +0300 Message-ID: <83zkxzuyfq.fsf@gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: lo.gmane.org X-Trace: dough.gmane.org 1278777753 3898 80.91.229.12 (10 Jul 2010 16:02:33 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sat, 10 Jul 2010 16:02:33 +0000 (UTC) To: 6604@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Jul 10 18:02:32 2010 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.69) (envelope-from ) id 1OXcVb-0000DO-65 for geb-bug-gnu-emacs@m.gmane.org; Sat, 10 Jul 2010 18:02:31 +0200 Original-Received: from localhost ([127.0.0.1]:58997 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OXcVZ-0003ji-46 for geb-bug-gnu-emacs@m.gmane.org; Sat, 10 Jul 2010 12:02:29 -0400 Original-Received: from [140.186.70.92] (port=51704 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OXcTG-0002vn-Hl for bug-gnu-emacs@gnu.org; Sat, 10 Jul 2010 12:00:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OXcTD-0002q4-VM for bug-gnu-emacs@gnu.org; Sat, 10 Jul 2010 12:00:06 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:59859) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OXcTD-0002pz-SS for bug-gnu-emacs@gnu.org; Sat, 10 Jul 2010 12:00:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1OXcOM-0007HF-61; Sat, 10 Jul 2010 11:55:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 10 Jul 2010 15:55:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 6604 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.127877727027960 (code B ref -1); Sat, 10 Jul 2010 15:55:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 10 Jul 2010 15:54:30 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OXcNq-0007Gu-1l for submit@debbugs.gnu.org; Sat, 10 Jul 2010 11:54:30 -0400 Original-Received: from mx10.gnu.org ([199.232.76.166]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OXcNn-0007Go-ST for submit@debbugs.gnu.org; Sat, 10 Jul 2010 11:54:29 -0400 Original-Received: from lists.gnu.org ([199.232.76.165]:50882) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1OXcNl-0006XZ-R3 for submit@debbugs.gnu.org; Sat, 10 Jul 2010 11:54:25 -0400 Original-Received: from [140.186.70.92] (port=50440 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OXcNi-0001dM-VK for bug-gnu-emacs@gnu.org; Sat, 10 Jul 2010 11:54:25 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OXcNg-00024c-7i for bug-gnu-emacs@gnu.org; Sat, 10 Jul 2010 11:54:22 -0400 Original-Received: from mtaout23.012.net.il ([80.179.55.175]:35586) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OXcNf-00024V-Ji for bug-gnu-emacs@gnu.org; Sat, 10 Jul 2010 11:54:20 -0400 Original-Received: from conversion-daemon.a-mtaout23.012.net.il by a-mtaout23.012.net.il (HyperSendmail v2007.08) id <0L5C00C00MBMYL00@a-mtaout23.012.net.il> for bug-gnu-emacs@gnu.org; Sat, 10 Jul 2010 18:54:17 +0300 (IDT) Original-Received: from HOME-C4E4A596F7 ([77.127.120.144]) by a-mtaout23.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0L5C00DE2MUF8800@a-mtaout23.012.net.il> for bug-gnu-emacs@gnu.org; Sat, 10 Jul 2010 18:54:17 +0300 (IDT) X-012-Sender: halo1@inter.net.il X-detected-operating-system: by eggs.gnu.org: Solaris 10 (beta) X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Sat, 10 Jul 2010 11:55:02 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) 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: , 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:38347 Archived-At: Emacs 23.2 started crashing on me a few days ago. So far it crashed twice in a couple of days. Both times the crash is inside GC, at the same place. I attach one such backtrace below; it is not a GDB backtrace because I wasn't running under GDB at the time. I have no built a non-optimized binary and run it under GDB, so I could debug it when it crashes. But if someone sees similar crashes, please post the data. Here's the backtrace: emacs.exe caused an Access Violation at location 010682ef in module emacs.exe Reading from location ac0003e4. Registers: eax=00000150 ebx=ac000150 ecx=0000002a edx=ac000000 esi=0000007c edi=00000001 eip=010682ef esp=0082cb10 ebp=0082cc48 iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202 Call stack: 010682EF emacs.exe:010682EF Fgarbage_collect alloc.c:5941 ... int this_free = 0; for (i = 0; i < lim; i++) > if (!FLOAT_MARKED_P (&fblk->floats[i])) { this_free++; ... 0100C3CB emacs.exe:0100C3CB Ffuncall eval.c:2958 ... || (!NILP (Vmemory_full) && consing_since_gc > memory_full_cons_threshold)) > Fgarbage_collect (); if (++lisp_eval_depth > max_lisp_eval_depth) ... 0100A249 emacs.exe:0100A249 internal_condition_case_2 eval.c:1590 ... val = (*bfun) (nargs, args); > catchlist = c.next; handlerlist = h.next; return val; ... 01013933 emacs.exe:01013933 safe_call xdisp.c:2387 ... safe_eval_handler); UNGCPRO; > val = unbind_to (count, val); } ... 0101396E emacs.exe:0101396E safe_call1 xdisp.c:2405 ... args[1] = arg; return safe_call (2, args); > } static Lisp_Object Qeval; ... 0101398A emacs.exe:0101398A safe_eval xdisp.c:2413 ... { return safe_call1 (Qeval, sexpr); > } /* Call function FN with one argument ARG. ... 0102A5E1 emacs.exe:0102A5E1 display_mode_element xdisp.c:17666 ... Lisp_Object spec; spec = safe_eval (XCAR (XCDR (elt))); > n += display_mode_element (it, depth, field_width - n, precision - n, spec, props, risky); ... 0102A79B emacs.exe:0102A79B display_mode_element xdisp.c:17755 ... props, risky); elt = XCDR (elt); > len++; if ((len & 1) == 0) halftail = XCDR (halftail); ... 0102A79B emacs.exe:0102A79B display_mode_element xdisp.c:17755 ... props, risky); elt = XCDR (elt); > len++; if ((len & 1) == 0) halftail = XCDR (halftail); ... 0102B89D emacs.exe:0102B89D display_mode_line xdisp.c:17258 ... record_unwind_save_match_data (); display_mode_element (&it, 0, 0, 0, format, Qnil, 0); > pop_kboard (); unbind_to (count, Qnil); ... 0102BA94 emacs.exe:0102BA94 display_mode_lines xdisp.c:17201 ... /* Select mode line face based on the real selected window. */ > display_mode_line (w, CURRENT_MODE_LINE_FACE_ID_3 (sel_w, sel_w, w), current_buffer->mode_line_format); ++n; ... 0102D059 emacs.exe:0102D059 redisplay_window xdisp.c:13832 ... /* If mode line height has changed, arrange for a thorough immediate redisplay using the correct mode line height. */ > if (WINDOW_WANTS_MODELINE_P (w) && CURRENT_MODE_LINE_HEIGHT (w) != DESIRED_MODE_LINE_HEIGHT (w)) { ... 0102E937 emacs.exe:0102E937 redisplay_window_0 xdisp.c:12239 ... if (displayed_buffer->display_error_modiff < BUF_MODIFF (displayed_buffer)) redisplay_window (window, 0); > return Qnil; } ... 01009ED5 emacs.exe:01009ED5 internal_condition_case_1 eval.c:1539 ... val = (*bfun) (arg); > catchlist = c.next; handlerlist = h.next; return val; ... 0101E049 emacs.exe:0101E049 redisplay_windows xdisp.c:12217 ... /* Use list_of_error, not Qerror, so that we catch only errors and don't run the debugger. */ > internal_condition_case_1 (redisplay_window_0, window, list_of_error, redisplay_window_error); ... 0101E006 emacs.exe:0101E006 redisplay_windows xdisp.c:12211 ... redisplay_windows (w->hchild); else if (!NILP (w->vchild)) > redisplay_windows (w->vchild); else if (!NILP (w->buffer)) { ... 01030678 emacs.exe:01030678 redisplay_internal xdisp.c:11789 ... if (FRAME_VISIBLE_P (f) && !FRAME_OBSCURED_P (f)) > redisplay_windows (FRAME_ROOT_WINDOW (f)); /* The X error handler may have deleted that frame. */ ... 01030E68 emacs.exe:01030E68 redisplay_preserve_echo_area xdisp.c:12038 ... display_last_displayed_message_p = 1; redisplay_internal (1); > display_last_displayed_message_p = 0; } else ... 0109E9B9 emacs.exe:0109E9B9 Fredisplay dispnew.c:6684 ... specbind (Qredisplay_dont_pause, Qt); redisplay_preserve_echo_area (2); > unbind_to (count, Qnil); return Qt; } ... 0100C617 emacs.exe:0100C617 Ffuncall eval.c:3024 ... goto done; case 1: > val = (*XSUBR (fun)->function) (internal_args[0]); goto done; case 2: ... 0111E156 emacs.exe:0111E156 Fbyte_code bytecode.c:680 ... } #endif > TOP = Ffuncall (op + 1, &TOP); AFTER_POTENTIAL_GC (); break; ... 0100C012 emacs.exe:0100C012 funcall_lambda eval.c:3216 ... } > return unbind_to (count, val); } ... 0100C3F6 emacs.exe:0100C3F6 Ffuncall eval.c:3093 ... done: CHECK_CONS_LIST (); > lisp_eval_depth--; if (backtrace.debug_on_exit) val = call_debugger (Fcons (Qexit, Fcons (val, Qnil))); ... 0111E156 emacs.exe:0111E156 Fbyte_code bytecode.c:680 ... } #endif > TOP = Ffuncall (op + 1, &TOP); AFTER_POTENTIAL_GC (); break; ... 0100C012 emacs.exe:0100C012 funcall_lambda eval.c:3216 ... } > return unbind_to (count, val); } ... 0100C3F6 emacs.exe:0100C3F6 Ffuncall eval.c:3093 ... done: CHECK_CONS_LIST (); > lisp_eval_depth--; if (backtrace.debug_on_exit) val = call_debugger (Fcons (Qexit, Fcons (val, Qnil))); ... 0100CE1D emacs.exe:0100CE1D Fapply eval.c:2504 ... /* By convention, the caller needs to gcpro Ffuncall's args. */ RETURN_UNGCPRO (Ffuncall (gcpro1.nvars, funcall_args)); > } /* Run hook variables in various ways. */ ... 0100C6B4 emacs.exe:0100C6B4 Ffuncall eval.c:3005 ... if (XSUBR (fun)->max_args == MANY) { > val = (*XSUBR (fun)->function) (numargs, args + 1); goto done; } ... 0111E156 emacs.exe:0111E156 Fbyte_code bytecode.c:680 ... } #endif > TOP = Ffuncall (op + 1, &TOP); AFTER_POTENTIAL_GC (); break; ... 0100BBE5 emacs.exe:0100BBE5 Feval eval.c:2352 ... goto done; case 3: > val = (*XSUBR (fun)->function) (argvals[0], argvals[1], argvals[2]); goto done; ... 0100D667 emacs.exe:0100D667 internal_lisp_condition_case eval.c:1435 ... handlerlist = &h; > val = Feval (bodyform); catchlist = c.next; handlerlist = h.next; ... 0111E96B emacs.exe:0111E96B Fbyte_code bytecode.c:870 ... body = POP; BEFORE_POTENTIAL_GC (); > TOP = internal_lisp_condition_case (TOP, body, handlers); AFTER_POTENTIAL_GC (); break; ... 0100C012 emacs.exe:0100C012 funcall_lambda eval.c:3216 ... } > return unbind_to (count, val); } ... 0100C3F6 emacs.exe:0100C3F6 Ffuncall eval.c:3093 ... done: CHECK_CONS_LIST (); > lisp_eval_depth--; if (backtrace.debug_on_exit) val = call_debugger (Fcons (Qexit, Fcons (val, Qnil))); ... 0100CA19 emacs.exe:0100CA19 call1 eval.c:2811 ... RETURN_UNGCPRO (Ffuncall (2, &fn)); #endif /* not NO_ARG_ARRAY */ > } /* Call function fn with 2 arguments arg1, arg2 */ ... 010552BF emacs.exe:010552BF timer_check keyboard.c:4713 ... call1 (Qtimer_event_handler, chosen_timer); > Vdeactivate_mark = old_deactivate_mark; timers_run++; unbind_to (count, Qnil); ... 010553D8 emacs.exe:010553D8 readable_events keyboard.c:3698 ... if (flags & READABLE_EVENTS_DO_TIMERS_NOW) > timer_check (1); /* If the buffer contains only FOCUS_IN_EVENT events, and ... 0105ABDB emacs.exe:0105ABDB get_input_pending keyboard.c:7038 ... { /* First of all, have we already counted some input? */ > *addr = (!NILP (Vquit_flag) || readable_events (flags)); /* If input is being read as it arrives, and we have none, there is none. */ ... 0105AC8B emacs.exe:0105AC8B detect_input_pending_run_timers keyboard.c:10707 ... if (!input_pending) > get_input_pending (&input_pending, READABLE_EVENTS_DO_TIMERS_NOW); if (old_timers_run != timers_run && do_display) ... 01046756 emacs.exe:01046756 wait_reading_process_output process.c:5022 ... int leave = 0; > if (detect_input_pending_run_timers (do_display)) { swallow_events (do_display); ... 0105C35F emacs.exe:0105C35F read_char keyboard.c:4137 ... wait_reading_process_output (0, 0, -1, 1, Qnil, NULL, 0); > if (!interrupt_input && kbd_fetch_ptr == kbd_store_ptr) /* Pass 1 for EXPECT since we just waited to have input. */ read_avail_input (1); ... 0105E242 emacs.exe:0105E242 read_key_sequence keyboard.c:9515 ... (Lisp_Object *) submaps, last_nonmenu_event, &used_mouse_menu, NULL); > if ((INTEGERP (key) && XINT (key) == -2) /* wrong_kboard_jmpbuf */ /* When switching to a new tty (with a new keyboard), read_char returns the new buffer, rather than -2 ... 01060287 emacs.exe:01060287 command_loop_1 keyboard.c:1643 ... /* Read next key sequence; i gets its length. */ > i = read_key_sequence (keybuf, sizeof keybuf / sizeof keybuf[0], Qnil, 0, 1, 1); ... 0100A16A emacs.exe:0100A16A internal_condition_case eval.c:1491 ... val = (*bfun) (); > catchlist = c.next; handlerlist = h.next; return val; ... 0105381A emacs.exe:0105381A command_loop_2 keyboard.c:1360 ... do > val = internal_condition_case (command_loop_1, Qerror, cmd_error); while (!NILP (val)); ... 0100A09F emacs.exe:0100A09F internal_catch eval.c:1226 ... /* Call FUNC. */ if (! _setjmp (c.jmp)) > c.val = (*func) (arg); /* Throw works by a longjmp that comes right here. */ ... 01053627 emacs.exe:01053627 command_loop keyboard.c:1343 ... /* End of file in -batch run causes exit here. */ > if (noninteractive) Fkill_emacs (Qt); } ... 010536C0 emacs.exe:010536C0 recursive_edit_1 keyboard.c:955 ... val = command_loop (); > if (EQ (val, Qt)) Fsignal (Qquit, Qnil); /* Handle throw from read_minibuf when using minibuffer ... 010537E1 emacs.exe:010537E1 Frecursive_edit keyboard.c:1017 ... recursive_edit_1 (); > return unbind_to (count, Qnil); } ... 01002E2F emacs.exe:01002E2F main emacs.c:1836 ... /* NOTREACHED */ return 0; > } /* Sort the args so we can find the most important ones ... 0100124B emacs.exe:0100124B 01001298 emacs.exe:01001298 7C816D4F kernel32.dll:7C816D4F RegisterWaitForInputIdle In GNU Emacs 23.2.1 (i386-mingw-nt5.1.2600) of 2010-07-10 on HOME-C4E4A596F7 Windowing system distributor `Microsoft Corp.', version 5.1.2600 configured using `configure --with-gcc (3.4) --no-opt' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: ENU value of $XMODIFIERS: nil locale-coding-system: cp1255 default enable-multibyte-characters: t Major mode: Mail Minor modes in effect: flyspell-mode: t desktop-save-mode: t show-paren-mode: t display-time-mode: t tooltip-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-encryption-mode: t auto-compression-mode: t temp-buffer-resize-mode: t line-number-mode: t abbrev-mode: t Recent input: y y C-x b I N C-x b * M e s C-x k C-x 5 b * i 1 > C-x 5 b x d C-x C-f C-g M-1 g d a t m a i l . n e w d d SPC d d d d d d d C-x C-s r M-~ C-x C-f d : / u s g n e m a - 2 3 x e m 2 / s r e m _ c b z e m e m e m . t C-x 4 f 2 M-x c o m p a C-x b I N B - C-x b I N m e m a c s - d e v e l SPC E m a c s SPC 2 3 . 2 SPC c r a s h e s SPC i n SPC G C M-x r e p o r t - e m Recent messages: Wrote d:/usr/eli/rmail/INBOX Computing summary lines...done 9 new messages read No following nondeleted message Saving file d:/usr/eli/rmail/INBOX... Wrote d:/usr/eli/rmail/INBOX Parsing d:/usr/eli/.mailrc... done Modification-flag cleared Making completion list... Mark set Load-path shadows: None found. Features: (shadow emacsbug compare-w help-mode view mailalias mailabbrev sendmail conf-mode newcomment ld-script sh-script executable dired-x dired-aux dired tcl generic parse-time nxml-uchnm rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph nxml-enc xmltok sgml-mode arc-mode archive-mode python-21 python gud comint ring vc-cvs make-mode org-wl org-w3m org-vm org-rmail org-mhe org-mew org-irc org-jsinfo org-infojs org-html org-exp org-exp-blocks org-agenda org-info org-gnus org-bibtex org-bbdb org byte-opt bytecomp byte-compile advice help-fns advice-preload org-footnote org-src org-list org-faces org-compat org-macs time-date noutline outline easy-mmode jka-compr cc-mode cc-fonts cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs regexp-opt info easymenu vc-bzr sha1 hex-util flyspell ispell add-log rmailsum rmail mail-utils desktop server filecache saveplace generic-x paren battery time tooltip ediff-hook vc-hooks lisp-float-type mwheel dos-w32 disp-table ls-lisp w32-win w32-vars tool-bar dnd fontset image fringe lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar mldrag mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev loaddefs button minibuffer faces cus-face files text-properties overlay md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process multi-tty emacs)