GNU bug report logs - #28850
26.0.90; Error running timer 'jit-lock-stealth-fontify': (error "Invalid search bound (wrong side of point)")

Previous Next

Package: emacs;

Reported by: Eli Zaretskii <eliz <at> gnu.org>

Date: Sun, 15 Oct 2017 16:09:01 UTC

Severity: normal

Found in versions 27.0.50, 26.0.90

Done: Alan Mackenzie <acm <at> muc.de>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Alan Mackenzie <acm <at> muc.de>
To: "Basil L. Contovounesios" <contovob <at> tcd.ie>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 28850 <at> debbugs.gnu.org
Subject: bug#28850: 26.0.90; Error running timer 'jit-lock-stealth-fontify': (error "Invalid search bound (wrong side of point)")
Date: Tue, 30 Apr 2019 11:33:02 +0000
Hello again, Basil.

On Tue, Apr 30, 2019 at 02:51:03 +0100, Basil L. Contovounesios wrote:
> Eli Zaretskii <eliz <at> gnu.org> writes:

> >> Date: Wed, 25 Oct 2017 19:11:37 +0000
> >> Cc: 28850 <at> debbugs.gnu.org
> >> From: Alan Mackenzie <acm <at> muc.de>

> >> Actually, it wasn't that difficult to amend that form generator.  Would
> >> you please try out the patch below, which should apply cleanly to
> >> master.

> > I think you've solved the problem, because I let Emacs run idle for 10
> > hours, and it didn't hit this error even once.

> It seems to have returned in some way.  I can't reproduce this on Emacs
> 26, but on latest master, the following steps:

> 0. emacs -Q
> 1. (progn (setq debug-on-error t)
>           (setq jit-lock-stealth-nice nil)
>           (setq jit-lock-stealth-time 0)
>           (find-function #'next-property-change))
> 2. C-x C-e

> almost immediately lead to the following backtrace:

> Debugger entered--Lisp error: (error "Invalid search bound (wrong side of point)")
>   search-forward-regexp("\\<\\(\\(?:enum\\)\\)\\>[^][{};/#=]*{" 1673 t)
>   c-font-lock-enum-body(1673)
>   font-lock-fontify-keywords-region(1123 1673 nil)
>   font-lock-default-fontify-region(1123 1673 nil)
>   c-font-lock-fontify-region(1173 1673 nil)
>   font-lock-fontify-region(1173 1673)
>   #f(compiled-function (fun) #<bytecode 0x1565bb8a9581>)(font-lock-fontify-region)
>   run-hook-wrapped(#f(compiled-function (fun) #<bytecode 0x1565bb8a9581>) font-lock-fontify-region)
>   jit-lock--run-functions(1173 1673)
>   jit-lock-fontify-now(1173 1673)
>   jit-lock-stealth-fontify(t)
>   apply(jit-lock-stealth-fontify t)
>   timer-event-handler([t 0 0 974323 nil jit-lock-stealth-fontify (t) idle 261000])

The cause of this is a (search-forward-regexp <regexp> limit t) in a loop, where
the code fails to check (< (point) limit) at the start.  In textprop.c in
master, it so happens that the last successful iteration of the loop
leaves point beyond limit.  So we get the exception.

This is easy to correct, but first I'm going to check for all the other
places where the same mistake occurs.  Expect a patch soon!

[ .... ]

> Thanks,

> -- 
> Basil

-- 
Alan Mackenzie (Nuremberg, Germany).




This bug report was last modified 6 years and 14 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.