🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.emacs.bug
Article #98602

v18.57: coredump while reading from minibuffer

#98602
From: Kevin Layer
Date: Wed, 08 May 1991 00:50
79 lines
3838 bytes
Running 18.57 on a NeXT (though it happens on sparc's, too), I get a
core dump with the following backtrace.   It happens once a day.

  #0  0x50070d4 in bcopy ()
  #1  0x18912 in insert (string=(unsigned char *) 0x17da1c
			<Address 0x17da1c out of bounds>, length=14)
			(insdel.c line 276)
  #2  0x27ab4 in Finsert (nargs=1, args=(int *) 0x3fff25c)
			(editfns.c line 527)
  #3  0x192cc in read_minibuf (map=84363680, initial=51894808,
			prompt=51064840, expflag=0) (minibuf.c line 131)
  #4  0x19e1a in Fcompleting_read (prompt=51064840,
			table=17262912, pred=51894808,
			require_match=17245744,
			init=51894808) (minibuf.c line 636)
  #5  0x1cc08 in Fread_file_name (prompt=51064840,
			dir=17245744, defalt=17245744, mustmatch=17245744)
			(fileio.c line 2205)
  #6  0x2b61c in Ffuncall (nargs=2, args=(int *) 0x3fff33c)
			(eval.c line 1713)
  #7  0x343aa in Fbyte_code (bytestr=51064788, vector=67814960,
			maxdepth=4) (bytecode.c line 270)
  #8  0x2af72 in Feval (form=84591536) (eval.c line 1413)
  #9  0x2889e in Fcall_interactively (function=17481172,
			record=17245744) (callint.c line 208)
  #10 0x1306e in Fcommand_execute (cmd=17481172, record=17245744)
			(keyboard.c line 1670)
  #11 0x1224a in command_loop_1 () (keyboard.c line 773)

in command_loop_1(), cmd (same as the `cmd' argument to
Fcommand_execute()) is set from the global variable
read_key_sequence_cmd which has this in it:

  (gdb) print ((enum Lisp_Type) ((read_key_sequence_cmd) >> 24))
  $30 = Lisp_Symbol
  (gdb) x/x ((read_key_sequence_cmd) & ((1<<24) - 1))
  0xabdd4 <XrmQString+238664>:	0x000b2fa8
  (gdb) x/x (0x000b2fa8 & ((1<<24) - 1))
  0xb2fa8 <XrmQString+267804>:	0x00000016
  (gdb) 
  0xb2fac <XrmQString+267808>:	0x6d792d66
  (gdb) x/x 0x6d792d66
  0x6d792d66:	memory reference out of bounds.
  (gdb) 

so read_key_sequence_cmd is a symbol, and it appears the first slot in
the symbol is a string, which has a bogus data slot. Furthermore, it
seems the bug has to be in the first part of read_key_sequence(), but
I can't find it.  Either `local' or `global' is getting a bogus value.
Problem is, this is impossible to reliably reproduce (it only happens
at the worse possible moments, about once a day).

More info:

  (gdb) print keybuf
  $26 = {"^X^F^@..."}
  (gdb) print this_command_key_count
  $28 = 2

(I had just typed ^X^F, which is bound to a byte-compiled function
called ``my-find-alternate-file'', which is:

    (defun my-find-alternate-file (filename alternate)
      (interactive (if current-prefix-arg
		       (list (read-file-name "Find alternate file: ") t)
		     (list (read-file-name "Find file: ") nil)))
      (if alternate
	  (find-alternate-file filename)
	(find-file filename)))

and this never happened in 18.55.)

I'd appreciate hearing any good ideas on how to track this one down (I
still have the core file).

--
Kevin Layer, Franz Inc.         1995 University Avenue, Suite 275
layer@Franz.COM (internet)      Berkeley, CA  94704
uunet!franz!layer (uucp)        Phone: (415) 548-3600; FAX: (415) 548-8253
Technical Details
Message-ID: <LAYER.91May7175038@ice.Franz.COM>
Path: arc1-ca.pugleaf.net!gmdzi!unido!fauern!ira.uka.de!sol.ctr.columbia.edu!lll-winken!elroy.jpl.nasa.gov!swrinde!cs.utexas.edu!asuvax!ukma!usenet.ins.cwru.edu!tut.cis.ohio-state.edu!unreplyable!garbage

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: fb2f1,3057b51af758d16e,start
X-Google-Attributes: gidfb2f1,public
X-Google-ArrivalTime: 1991-05-08 10:47:27 PST
Path: arc1-ca.pugleaf.net!gmdzi!unido!fauern!ira.uka.de!sol.ctr.columbia.edu!lll-winken!elroy.jpl.nasa.gov!swrinde!cs.utexas.edu!asuvax!ukma!usenet.ins.cwru.edu!tut.cis.ohio-state.edu!unreplyable!garbage
From: franz!layer@UUNET.UU.NET (Kevin Layer)
Newsgroups: gnu.emacs.bug
Subject: v18.57: coredump while reading from minibuffer
Message-ID: <LAYER.91May7175038@ice.Franz.COM>
Date: 8 May 91 00:50:38 GMT
Sender: daemon@tut.cis.ohio-state.edu
Distribution: gnu
Organization: Franz Inc., Berkeley, CA
Lines: 79
Approved: bug-gnu-emacs@prep.ai.mit.edu