Subject: bug#12308: 24.2; (process-attributes <busy-pid-in-cpu>) crashes emacs on Solaris with fatal error 11

From: Glenn Morris <[email-masked]>
Date: Thu, 30 Aug 2012 03:28:26 -0400

M K wrote:

>  (dolist (pid (list-system-processes)) (print (process-attributes pid)))

Thanks. I can reproduce with 24.2 on "SunOS 5.10" sparc-sun-solaris2.10.
However it works fine in the current trunk so I guess it is already
fixed.

Unoptimized 24.2 backtrace if of interest to anyone:

Program received signal SIGSEGV, Segmentation fault.
0x002d0178 in print_object (obj=1, printcharfun=5946754, escapeflag=1)
    at print.c:1402
1402		  int multibyte = STRING_MULTIBYTE (obj);
#0  0x002d0178 in print_object (obj=1, printcharfun=5946754, escapeflag=1)
    at print.c:1402
	i_byte = 1
	gcpro1 = {
  next = 0x1, 
  var = 0x1, 
  nvars = 12
}
	str = (unsigned char *) 0x3 <Address 0x3 out of bounds>
	need_nonhex = 0
	multibyte = 6134781
	size_byte = 2
	buf = "\000\000\000\001\000_\235`\000Z\275j\000\306\361n\000\306\361n\000\000\000\001\000\000\000\001\000\000\000\001\000\000\000\001\000\000\000\003"
#1  0x002d174c in print_object (obj=1, printcharfun=5946754, escapeflag=1)
    at print.c:1683
	buf = "\000\000\000\001\000Z\275j\000\306\376\376\000\306\376\376\000Z\275j\000\000\000\001\000\000\000\001\000\000\000\001 \210\030\355\000U\200\200"
#2  0x002d16bc in print_object (obj=13041294, printcharfun=5946754, 
    escapeflag=1) at print.c:1671
	i = 3
	print_length = 9223372036854775807
	halftail = 13041318
	buf = "\000\000RM\000[D\003\000[C\353\000[C\323\000r\376\020\377\277\242p\000[\001\006\000\000\000\002\000\000\000\004\000r\376\020"
#3  0x002ced48 in print (obj=13041342, printcharfun=5946754, escapeflag=1)
    at print.c:1105
No locals.
#4  0x002cda40 in Fprint (object=13041342, printcharfun=5946754) at print.c:713
	old = (struct buffer *) 0x5b4710
	old_point = -1
	start_point = -1
	old_point_byte = -1
	start_point_byte = -1
	specpdl_count = 12
	free_print_buffer = 0
	multibyte = 1
	original = 5946754
	gcpro1 = {
  next = 0x0, 
  var = 0xc, 
  nvars = -4217816
}
#5  0x0029b52c in eval_sub (form=12948230) at eval.c:2352
	numargs = 4
	args_left = 5946730
	i = 2
	maxargs = 2
	argvals = {13041342, 5946730, 12940406, 4, 0, 4, 0, 0}
	fun = 5584661
	val = 88188
	original_fun = 6033194
	original_args = 12948254
	funcar = 0
	backtrace = {
  next = 0xffbfa670, 
  function = 0xffbfa44c, 
  args = 0xffbfa3d0, 
  nargs = 1, 
  debug_on_exit = 0
}
	gcpro1 = {
  next = 0x2c, 
  var = 0x0, 
  nvars = 0
}
	gcpro2 = {
  next = 0xc43691, 
  var = 0x5e7e82, 
  nvars = -4217684
}
	gcpro3 = {
  next = 0x5abd82, 
  var = 0xffbfa3d0, 
  nvars = 2
}
#6  0x00295d80 in Fprogn (args=12948398) at eval.c:364
	val = 88188
	gcpro1 = {
  next = 0x5998fc, 
  var = 0xc43691, 
  nvars = 0
}
#7  0x00298118 in Fwhile (args=12948414) at eval.c:1141
	test = 6192770
	body = 12948406
	gcpro1 = {
  next = 0x5e7e82, 
  var = 0xc59386, 
  nvars = 6192770
}
	gcpro2 = {
  next = 0x5abd6a, 
  var = 0xc593ae, 
  nvars = 12948270
}
#8  0x0029b1a0 in eval_sub (form=12948422) at eval.c:2297
	numargs = 16
	args_left = 12948414
	i = 2744288
	maxargs = -4217016
	argvals = {0, 0, 0, 0, 0, 0, 12948206, -4216776}
	fun = 5580909
	val = 5929116
	original_fun = 6034290
	original_args = 12948414
	funcar = 5946730
	backtrace = {
  next = 0xffbfa8e8, 
  function = 0xffbfa694, 
  args = 0xffbfa690, 
  nargs = -1, 
  debug_on_exit = 0
}
	gcpro1 = {
  next = 0xffbfacd0, 
  var = 0x4, 
  nvars = 0
}
	gcpro2 = {
  next = 0x54ecba, 
  var = 0x5abd6a, 
  nvars = 5565514
}
	gcpro3 = {
  next = 0xc59326, 
  var = 0x5abd6a, 
  nvars = -4217032
}
#9  0x00295d80 in Fprogn (args=12948430) at eval.c:364
	val = 5946730
	gcpro1 = {
  next = 0x5abd6a, 
  var = 0x5c7b32, 
  nvars = 12946918
}
#10 0x00297fec in Flet (args=12948438) at eval.c:1119
	temps = (Lisp_Object *) 0xffbfa798
	tem = 5946730
	lexenv = 5946730
	elt = 7448842
	varlist = 5946730
	count = 10
	argnum = 2
	gcpro1 = {
  next = 0x300, 
  var = 0x300, 
  nvars = 8
}
	gcpro2 = {
  next = 0x2, 
  var = 0x10, 
  nvars = 2
}
	sa_count = 10
	sa_must_free = 0
#11 0x0029b1a0 in eval_sub (form=12948446) at eval.c:2297
	numargs = 8
	args_left = 12948438
	i = 6032290
	maxargs = 3
	argvals = {5981968, 0, 0, 0, 0, 0, 0, 0}
	fun = 5580885
	val = 2
	original_fun = 6034242
	original_args = 12948438
	funcar = 12948446
	backtrace = {
  next = 0xffbfaa10, 
  function = 0xffbfa90c, 
  args = 0xffbfa908, 
  nargs = -1, 
  debug_on_exit = 0
}
	gcpro1 = {
  next = 0xffbfa8f8, 
  var = 0x9, 
  nvars = 5946730
}
	gcpro2 = {
  next = 0xffbfa928, 
  var = 0x29b808, 
  nvars = -4216272
}
	gcpro3 = {
  next = 0x5abd6a, 
  var = 0x1, 
  nvars = 5879236
}
#12 0x0029b820 in eval_sub (form=12948190) at eval.c:2410
	fun = 5949950
	val = 5946730
	original_fun = 6130306
	original_args = 12948222
	funcar = 6033434
	backtrace = {
  next = 0xffbfab40, 
  function = 0xffbfaa34, 
  args = 0xffbfaa30, 
  nargs = -1, 
  debug_on_exit = 0
}
	gcpro1 = {
  next = 0x4db2ab, 
  var = 0x47b9c5, 
  nvars = -4215600
}
	gcpro2 = {
  next = 0x0, 
  var = 0x0, 
  nvars = 5092017
}
	gcpro3 = {
  next = 0xc592de, 
  var = 0x20, 
  nvars = 6037770
}
#13 0x0029ac98 in Feval (form=12948190, lexical=5946730) at eval.c:2203
	count = 9
#14 0x0029d2d8 in Ffuncall (nargs=3, args=0xffbfabe4) at eval.c:3004
	fun = 5581125
	original_fun = 6034506
	funcar = 5863660
	numargs = 2
	lisp_numargs = 3
	val = 12948190
	backtrace = {
  next = 0xffbfae18, 
  function = 0xffbfabe4, 
  args = 0xffbfabe8, 
  nargs = 2, 
  debug_on_exit = 0
}
	internal_args = (Lisp_Object *) 0xffbfabe8
	i = 6032770
#15 0x0030b48c in exec_byte_code (bytestr=4700305, vector=4700325, 
    maxdepth=16, args_template=5946730, nargs=0, args=0x0) at bytecode.c:785
	count = 8
	op = 2
	vectorp = (Lisp_Object *) 0x47b8a8
	stack = {
  pc = 0x4db372 "!)\207", 
  byte_string = 4700305, 
  byte_string_start = 0x4db360 "\b\203\b", 
  constants = 4700325, 
  next = 0xffbfafa8
}
	top = (Lisp_Object *) 0xffbfabe4
	result = 5946730
#16 0x0029dfe8 in funcall_lambda (fun=4700269, nargs=1, arg_vector=0xffbfaebc)
    at eval.c:3232
	val = 5879128
	syms_left = 5946730
	next = 10638690
	lexenv = 5946730
	count = 7
	i = 1
	optional = 0
	rest = 0
#17 0x0029d530 in Ffuncall (nargs=2, args=0xffbfaeb8) at eval.c:3050
	fun = 4700269
	original_fun = 10638666
	funcar = 5946730
	numargs = 1
	lisp_numargs = 3
	val = -4215092
	backtrace = {
  next = 0xffbfb0f0, 
  function = 0xffbfaeb8, 
  args = 0xffbfaebc, 
  nargs = 1, 
  debug_on_exit = 0
}
	internal_args = (Lisp_Object *) 0x5b563a
	i = 6033410
#18 0x0030b48c in exec_byte_code (bytestr=4700737, vector=4700757, 
    maxdepth=12, args_template=5946730, nargs=0, args=0x0) at bytecode.c:785
	count = 6
	op = 1
	vectorp = (Lisp_Object *) 0x47ba58
	stack = {
  pc = 0x4db265 "\v)B\211\034A\n=\204\033", 
  byte_string = 4700737, 
  byte_string_start = 0x4db258 "\b\204\b", 
  constants = 4700757, 
  next = 0x0
}
	top = (Lisp_Object *) 0xffbfaeb8
	result = 10633962
#19 0x0029dfe8 in funcall_lambda (fun=4700709, nargs=1, arg_vector=0xffbfb1ac)
    at eval.c:3232
	val = 5879024
	syms_left = 5946730
	next = 10638690
	lexenv = 5946730
	count = 5
	i = 1
	optional = 0
	rest = 0
#20 0x0029d530 in Ffuncall (nargs=2, args=0xffbfb1a8) at eval.c:3050
	fun = 4700709
	original_fun = 6140954
	funcar = 3949481
	numargs = 1
	lisp_numargs = 3
	val = 4093969
	backtrace = {
  next = 0xffbfb348, 
  function = 0xffbfb1a8, 
  args = 0xffbfb1ac, 
  nargs = 1, 
  debug_on_exit = 0
}
	internal_args = (Lisp_Object *) 0x687c7e
	i = 6042754
#21 0x00294ed4 in Fcall_interactively (function=6140954, record_flag=5946730, 
    keys=5991357) at callint.c:852
	val = -4214224
	args = (Lisp_Object *) 0xffbfb1a8
	visargs = (Lisp_Object *) 0xffbfb1a0
	specs = 4093969
	filter_specs = 4093969
	teml = 0
	up_event = 5946730
	enable = 5946730
	speccount = 3
	next_event = 2
	prefix_arg = 5946730
	string = 0xffbfb1b0 "P"
	tem = 0x3a56c8 ""
	varies = (signed char *) 0xffbfb198 ""
	i = 2
	nargs = 2
	foo = 5981968
	arg_from_tty = 0
	gcpro1 = {
  next = 0xffbfb328, 
  var = 0x1c0984, 
  nvars = -4214096
}
	gcpro2 = {
  next = 0x1c05d4, 
  var = 0x0, 
  nvars = -4194561
}
	gcpro3 = {
  next = 0x5abd6a, 
  var = 0x5b4710, 
  nvars = 2
}
	gcpro4 = {
  next = 0x0, 
  var = 0x0, 
  nvars = 2
}
	gcpro5 = {
  next = 0x5abd6a, 
  var = 0x5abd6a, 
  nvars = 0
}
	key_count = 2
	record_then_fail = 0
	save_this_command = 6140954
	save_last_command = 10546978
	save_this_original_command = 6140954
	save_real_this_command = 6140954
#22 0x0029d314 in Ffuncall (nargs=4, args=0xffbfb3f0) at eval.c:3008
	fun = 5580381
	original_fun = 6042730
	funcar = 1836452
	numargs = 3
	lisp_numargs = 2737580
	val = -4213864
	backtrace = {
  next = 0x0, 
  function = 0xffbfb3f0, 
  args = 0xffbfb3f4, 
  nargs = 3, 
  debug_on_exit = 0
}
	internal_args = (Lisp_Object *) 0xffbfb3f4
	i = 315798
#23 0x0029c7fc in call3 (fn=6042730, arg1=6140954, arg2=5946730, arg3=5946730)
    at eval.c:2801
	ret_ungc_val = 0
	gcpro1 = {
  next = 0x2000, 
  var = 0x0, 
  nvars = 4
}
	args = {6042730, 6140954, 5946730, 5946730}
#24 0x001d6dd0 in Fcommand_execute (cmd=6140954, record_flag=5946730, 
    keys=5946730, special=5946730) at keyboard.c:10330
	final = 4700709
	tem = 5946730
	prefixarg = 5946730
#25 0x001bee6c in command_loop_1 () at keyboard.c:1572
	scount = 2
	cmd = 6140954
	keybuf = {96, 20, 5946730, 2, 50, -44024752, 112640, 8192, 0, 
  -37770876, -38862824, -37772956, -39122448, 277, 153324, -50279152, 0, 
  2723120, 16, -50126724, 1, 5879216, -4213280, 2723268, -39646632, 6211614, 
  5946730, 16507147, 598, -44015984}
	i = 2
	prev_modiff = 14
	prev_buffer = (struct buffer *) 0x5b4710
	already_adjusted = 0
#26 0x00298dcc in internal_condition_case (bfun=0x1be260 <command_loop_1>, 
    handlers=5994122, hfun=0x1bd73c <cmd_error>) at eval.c:1514
	val = 5951934
	c = {
  tag = 5946730, 
  val = 5946730, 
  next = 0xffbfb7a8, 
  gcpro = 0x0, 
  jmp = {16, -4213280, 2723120, -4213032, 1826136, 68184, 0, 227, 134330703, 
    50, -44024752, 112640}, 
  backlist = 0x0, 
  handlerlist = 0x0, 
  lisp_eval_depth = 0, 
  pdlcount = 2, 
  poll_suppress_count = 0, 
  interrupt_input_blocked = 0, 
  byte_stack = 0x0
}
	h = {
  handler = 5994122, 
  var = 5946730, 
  chosen_clause = 12614408, 
  tag = 0xffbfb660, 
  next = 0x0
}
#27 0x001bdd60 in command_loop_2 (ignore=5946730) at keyboard.c:1160
	val = 5927716
#28 0x0029857c in internal_catch (tag=5992122, func=0x1bdd34 <command_loop_2>, 
    arg=5946730) at eval.c:1271
	c = {
  tag = 5992122, 
  val = 5946730, 
  next = 0x0, 
  gcpro = 0x0, 
  jmp = {16, -4212920, 2721116, -4212712, 1826012, 5981968, 41, 1, 0, 6029840, 
    6029840, 5598816}, 
  backlist = 0x0, 
  handlerlist = 0x0, 
  lisp_eval_depth = 0, 
  pdlcount = 2, 
  poll_suppress_count = 0, 
  interrupt_input_blocked = 0, 
  byte_stack = 0x0
}
#29 0x001bdce4 in command_loop () at keyboard.c:1139
No locals.
#30 0x001bd00c in recursive_edit_1 () at keyboard.c:759
	count = 1
	val = 20
#31 0x001bd288 in Frecursive_edit () at keyboard.c:823
	count = 0
	buffer = 5946730
#32 0x001ba9b0 in main (argc=2, argv=0xffbfbb24) at emacs.c:1715
	dummy = -4211920
	stack_bottom_variable = 4 '\004'
	do_initial_setlocale = 1
	skip_args = 0
	rlim = {
  rlim_cur = 33554432, 
  rlim_max = 18446744073709551613
}
	no_loadup = 0
	junk = 0x0
	dname_arg = 0x0
	ch_to_dir = 0x0

Lisp Backtrace:
"print" (0xffbfa3d0)
"while" (0xffbfa690)
"let" (0xffbfa908)
"dolist" (0xffbfaa30)
"eval" (0xffbfabe8)
"eval-last-sexp-1" (0xffbfaebc)
"eval-last-sexp" (0xffbfb1ac)
"call-interactively" (0xffbfb3f4)