Subject: 23.1.96; Internal error in rng-validate-mode for very long attribute

From: Jay Berkenbilt <[email-masked]>
Date: Fri, 23 Apr 2010 10:41:20 -0400

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)