Subject: Re: bug#6015: 23.1.96; Internal error in rng-validate-mode for very long attribute

From: Andrew Hyatt <[email-masked]>
Date: Sun, 07 Aug 2016 00:09:42 -0400

Thanks for the bug report.  This still happens in Emacs 25.

However, this seems to be an unusually large value, and not something
users would ordinarily experience.  Due to that, I'm going to change the
bug priority to minor.  

Jay Berkenbilt <[email-masked]> writes:

> Create a file called "a.xml" and place the buffer in fundamental mode by
> typing
>
> M-x fundamental-mode RET
>
> Create a simple XML file consisting of a single element with a single
> attribute whose value is 40,000 characters long:
>
> <x value="CTRL-U 40000 w"/> RET
>
> and save the file.  Reload the file so that emacs enters nxml mode upon
> initial load:
>
> C-x C-v RET
>
> Observe the following errors in *Messages*:
>
> File mode specification error: (error "Stack overflow in regexp matcher")
> Error during redisplay: (error Stack overflow in regexp matcher)
> Internal error in rng-validate-mode triggered at buffer position 4. Stack overfl
>
> Information below pertains to my environment, but the issue reported
> above can be reproduced with emacs -Q.
>
>
>
> In GNU Emacs 23.1.96.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.10.4)
>  of 2010-04-20 on motoko.argon.local
> Windowing system distributor `The X.Org Foundation', version 11.0.70101000
> configured using `configure  '--prefix=/opt/tps/packages/linux.x86_64.rhel5/emacs-23.1.96-1''
>
> 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: en_US.UTF-8
>   value of $XMODIFIERS: @im=none
>   locale-coding-system: utf-8-unix
>   default enable-multibyte-characters: t
>
> Major mode: nXML
>
> Minor modes in effect:
>   which-function-mode: t
>   tooltip-mode: t
>   mouse-wheel-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
>   column-number-mode: t
>   line-number-mode: t
>
> Recent input:
> <return> C-x C-v C-g C-x C-v C-a C-k C-g C-x C-f C-a 
> C-k C-g C-x C-g 6 5 2 C-g C-x b <return> C-x C-g 6 
> 5 2 <return> C-x C-z C-p C-e M-b M-b M-f M-f M-b C-b 
> u n d e f , SPC C-x C-x C-x C-x C-x C-s C-x b a . <tab> 
> <return> C-x C-v C-g C-v C-l M-< C-s < d e s c r t 
> <backspace> p t i o n C-a C-x C-v <return> y M-x g 
> o t o SPC c SPC <return> 1 4 5 2 1 0 8 5 <return> C-f 
> M-f M-f M-f C-v C-e C-g C-x C-x M-< M-p M-x M-p <return> 
> M-p <return> C-a C-SPC C-n M-w C-x C-f / t m p / a 
> <backspace> b . x m l <return> C-y M-< M-> M-< C-s 
> v a l u e s <backspace> = C-s C-f M-x r e p l SPC s 
> SPC <return> { <backspace> [ ^ " ] C-a C-k C-g M-x 
> r e p l SPC r e SPC <return> g SPC <return> C-y <return> 
> w <return> <backspace> <backspace> <backspace> / > 
> M-< C-s v a l u e = C-s C-f M-l M-< M-f M-b M-d x M-d 
> M-d M-d M-d M-d C-d C-d C-d C-x C-s y C-x C-v <return> 
> M-> M-? M-> M-< C-f C-f C-f C-f C-f C-f C-f C-f C-f 
> C-f C-x h M-w C-x r s a M-f M-f M-f M-b C-k C-u 4 0 
> 0 0 0 w M-x C-g <C-backspace> M-< M-x f u n d a m <tab> 
> <return> C-e w <backspace> C-u 4 0 0 0 0 w " / > M-> 
> M-< C-x C-s C-x C-v <return> M-x r e p o r t SPC e 
> SPC b SPC <return>
>
> Recent messages:
> Saved text until "wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww"/>
> "
> Quit [2 times]
> Undo!
> Mark set [3 times]
> Saving file /tmp/b.xml...
> Wrote /tmp/b.xml
> File mode specification error: (error "Stack overflow in regexp matcher")
> Error during redisplay: (error Stack overflow in regexp matcher)
> Internal error in rng-validate-mode triggered at buffer position 4. Stack overflow in regexp matcher
>
> Load-path shadows:
> /home/jberkenb/elisp/startup hides /opt/tps/packages/linux.x86_64.rhel5/emacs-23.1.96-1/share/emacs/23.1.96/lisp/startup
>
> Features:
> (shadow warnings emacsbug help-mode view sgml-mode 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 perl-mode
> desktop rmail multi-isearch tabify man assoc vc-rcs epa-file epa derived
> epg flow-fill starttls dabbrev auth-source mailalias tls q-valid-addr
> newcomment flyspell ispell w3m-form w3m-symbol sort gnus-cite ansi-color
> mail-extr gnus-async gnus-bcklg parse-time gnus-ml disp-table vc-accurev
> paranoid-backup byte-opt bytecomp byte-compile nndraft nnmh nnfolder
> gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art
> mm-uu mml2015 epg-config mm-view smime dig nntp gnus-cache gnus-sum
> gnus-group gnus-undo nndoc nnoo nnmail mail-source format-spec
> gnus-start gnus-spec gnus-int gnus-range gnus-win gnus gnus-ems vc-svn
> vc vc-dispatcher w3m browse-url doc-view image-mode dired timezone
> w3m-hist w3m-fb w3m-ems w3m-ccl ccl w3m-favicon w3m-image w3m-proc
> w3m-util qmime qmime-compose qmime-view which-func imenu filecache
> server uniquify compile ange-ftp comint ring message ecomplete rfc822
> mml mml-sec password-cache mm-decode mm-bodies mm-encode mailcap
> mail-parse rfc2231 rfc2047 rfc2045 qp ietf-drums mailabbrev nnheader
> gnus-util netrc time-date mm-util mail-prsvr gmm-utils mailheader
> canlock sha1 hex-util hashcash mail-utils cc-styles cc-align cc-engine
> cc-vars cc-defs smtpmail sendmail regexp-opt project advice help-fns
> advice-preload jka-compr cus-edit easymenu wid-edit cus-start cus-load
> edmacro kmacro cl cl-19 tooltip ediff-hook vc-hooks lisp-float-type
> mwheel x-win x-dnd font-setting 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 dbusbind
> system-font-setting font-render-setting gtk x-toolkit x multi-tty emacs)