Subject: Re: bug#10664: 24.0.93; JIT font-lock infloops in a C file

From: Alan Mackenzie <[email-masked]>
Date: Mon, 6 Feb 2012 11:09:57 +0000

Hi, Eli.

On Sun, Feb 05, 2012 at 08:18:58PM +0200, Eli Zaretskii wrote:
> > Date: Mon, 30 Jan 2012 20:23:49 +0200
> > From: Eli Zaretskii <[email-masked]>

> > I don't have a recipe starting from "emacs -Q", sorry.

> > I left my freshly built Emacs 24.0.93 running, and when I returned to
> > it a few hours later, I found it unresponsive, endlessly showing in
> > the echo area "JIT lock socket.c", interspersed with GC messages
> > (I have garbage-collection-messages set non-nil).

> > Breaking into Emacs with a debugger produced the backtrace below (it's
> > an optimized build, so the backtrace may be inaccurate, sorry).  I
> > attach the file socket.c (part of the Guile sources) as well.

I got something similar for this socket.c.  I load it into emacs -Q, then
start scrolling downwards, a page at a time.  The first five scrolls are
fine.  Then it hangs on the sixth.

However, typing C-g (maybe twice) frees it up, and it does the scroll.
Careful perusal reveals that the fontification is incomplete.  From now
on, most key sequences must be followed by C-g to perform their commands.
;-(.

Did you actually try C-g when your session hung?

I was able to run elp on this, and I've a fairly good idea where it's got
stuck, but not yet why.

> > I still have that session in a debugger, so if someone wants me to
> > look around and show some values, I can do that.

I'm not sure I'd be able to make much out of debugger results.  I'm not
familiar enough with the internals of Emacs.  :-(

Can you restart this Emacs session?  If so, could you try out C-g
(assuming you haven't already done so).

> > Lisp Backtrace:
> > "c-in-knr-argdecl" (0x82df24)
> > "byte-code" (0x82e030)
> > "c-beginning-of-decl-1" (0x82e2d4)
> > "c-set-fl-decl-start" (0x82e444)
> > "c-context-set-fl-decl-start" (0x82e5b4)
> > 0x4264f80 PVEC_COMPILED
> > "mapc" (0x82e874)
> > "c-font-lock-fontify-region" (0x82e9e4)
> > "font-lock-fontify-region" (0x82ec68)
> > "run-hook-with-args" (0x82ec64)
> > "byte-code" (0x82ed60)
> > "jit-lock-fontify-now" (0x82f034)
> > "jit-lock-stealth-fontify" (0x82f278)
> > "apply" (0x82f274)
> > "byte-code" (0x82f370)
> > "timer-event-handler" (0x82f64c)
> > (gdb) p symbol
> > $1 = 50731778
> > (gdb) xtype
> > Lisp_Symbol
> > (gdb) xsymbol
> > $2 = (struct Lisp_Symbol *) 0x3061b00
> > "buffer-undo-list"
> > (gdb)

-- 
Alan Mackenzie (Nuremberg, Germany).