Subject: bug#4175: 23.1; nxml-mode: Internal error in rng-validate-mode triggered

From: Stephen Berman <[email-masked]>
Date: Sun, 10 Jul 2022 11:24:21 +0200

On Sat, 9 Jul 2022 19:53:42 -0700 Stefan Kangas <[email-masked]> wrote:

> Eli Zaretskii <[email-masked]> writes:
>
>>> From: Stephen Berman <[email-masked]>
>>> Cc: Andrew Hyatt <[email-masked]>,  [email-masked]
>>> Date: Fri, 12 Feb 2016 11:12:23 +0100
>>>
>>> I can reproduce it in a91b4b51ddf2575d821adb8b84fdf32cff83886e (GNU
>>> Emacs 25.0.90.2 (x86_64-suse-linux-gnu, GTK+ Version 3.14.15) of
>>> 2016-02-11).
>>
>> How large is the run-time stack on that system?
>>
>>> Here's the backtrace:
>>>
>>> Debugger entered--Lisp error: (error "Stack overflow in regexp matcher")
>>>   looking-at("\\(\\(?:\\(xmlns\\)\\|[_[:alpha:]][-._[:alnum:]]*\\)\\(:[_[:alpha:]][-._[:alnum:]]*\\)?\\)[
>>> 	\n]*=\\(?:[
>>> 	\n]*\\('[^<'&
>>> \n	]*\\([&
>>> \n	][^<']*\\)?'\\|\"[^<\"&
>>> \n	]*\\([&
>>> \n	][^<\"]*\\)?\"\\)\\(?:\\([
>>> 	\n]*>\\)\\|\\(?:\\([
>>> 	\n]*/\\)\\(>\\)?\\)\\|\\([
>>> 	\n]+\\)\\)\\)?")
>>>   xmltok-scan-attributes()
>>>   xmltok-scan-after-lt()
>>>   xmltok-forward()
>>>   rng-forward()
>>>   rng-do-some-validation-1(rng-validate-while-idle-continue-p)
>>>   rng-do-some-validation(rng-validate-while-idle-continue-p)
>>>   rng-validate-while-idle(#<buffer url25099xa>)
>>
>> Thanks.  Perhaps some regexp guru could suggest how to make this
>> regexp less greedy.
>
> Maybe Mattias could take a look?

FWIW, I cannot reproduce the error now with -Q in Emacs 27/28/29: in all
cases the mode line of the buffer containing the XML file says "nXML
valid" (both when executing the recipe with the URL, which is still
valid, as well as with the test.svg file provided in the bug thread.)

Steve Berman