Subject: Re: bug#17125: Issue still present in pretest 24.3.94.1: in daemon mode, closing X client frame exits entire Emacs

From: Alexis <[email-masked]>
Date: Thu, 02 Oct 2014 20:29:41 +1000

Dmitry Antipov writes:

> On 10/02/2014 06:46 AM, Alexis wrote:
>
>> Daemon shutdown occurs regardless of whether one uses C-x 5 0 or C-x C-c
>> to close the frame.
>
> Usually this means that the server process is crashed.
> Can you obtain the backtrace?  Recommended procedure is:
>
> 1) Compile with --with-x-toolkit=lucid --enable-checking
> 2) ./src/emacs -Q --daemon
> 3) gdb -p [pid of daemon process]
> 4) In gdb, install breakpoints to 'die' and 'exit', then 'c'(ontinue)
> 5) ./lib-src/emacsclient -nc
> 6) In client frame, C-x 5 0
> 7) See gdb output from 3).

(gdb) break die
Breakpoint 1 at 0x57ffb0: file alloc.c, line 6830.
(gdb) break exit
Breakpoint 2 at 0x7fa4fe101b60
(gdb) continue
Continuing.
[New Thread 0x7fa4f3fff700 (LWP 30109)]
[New Thread 0x7fa4f37fe700 (LWP 30110)]

Breakpoint 1, die (msg=msg@entry=0x664203 "VECTORP (elt)", file=file@entry=0x66b506 "font.c", line=line@entry=2602) at alloc.c:6830
6830    {
(gdb) bt
#0  die (msg=msg@entry=0x664203 "VECTORP (elt)", file=file@entry=0x66b506 "font.c", line=line@entry=2602) at alloc.c:6830
#1  0x00000000005b28b1 in font_clear_cache (cache=16514454, driver=driver@entry=0xc7ac80, f=<error reading variable: Unhandled dwarf expression opcode 0xfa>)
    at font.c:2602
#2  0x00000000005b9332 in font_finish_cache (driver=0xc7ac80, f=0x129cc28) at font.c:2566
#3  font_update_drivers (f=f@entry=0x129cc28, new_drivers=13144946) at font.c:3475
#4  0x0000000000427e13 in delete_frame (frame=<optimized out>, force=13144946) at frame.c:1345
#5  0x00000000005a139b in Ffuncall (nargs=nargs@entry=1, args=args@entry=0x7fff814f3e90) at eval.c:2815
#6  0x000000000059cbdc in Fcall_interactively (function=13187842, record_flag=13144946, keys=13179645) at callint.c:836
#7  0x00000000005a1387 in Ffuncall (nargs=<optimized out>, args=<optimized out>) at eval.c:2819
#8  0x00000000005df63d in exec_byte_code (bytestr=2, vector=6731014, maxdepth=2602, args_template=4100, nargs=4, args=0xfbfd80, args@entry=0x7fff814f4168)
    at bytecode.c:916
#9  0x00000000005a0dc0 in funcall_lambda (fun=4, nargs=nargs@entry=1, arg_vector=arg_vector@entry=0x7fff814f4168) at eval.c:2979
#10 0x00000000005a111b in Ffuncall (nargs=nargs@entry=2, args=args@entry=0x7fff814f4160) at eval.c:2873
#11 0x00000000005a15aa in call1 (fn=<optimized out>, arg1=<optimized out>) at eval.c:2611
#12 0x000000000052bbeb in command_loop_1 () at keyboard.c:1559
#13 0x000000000059f085 in internal_condition_case (bfun=bfun@entry=0x52b770 <command_loop_1>, handlers=<optimized out>, hfun=hfun@entry=0x520750 <cmd_error>)
    at eval.c:1348
#14 0x000000000051db3e in command_loop_2 (ignore=ignore@entry=13144946) at keyboard.c:1177
#15 0x000000000059ef8b in internal_catch (tag=13192162, func=func@entry=0x51db20 <command_loop_2>, arg=13144946) at eval.c:1112
#16 0x0000000000520277 in command_loop () at keyboard.c:1156
#17 recursive_edit_1 () at keyboard.c:777
#18 0x00000000005205b5 in Frecursive_edit () at keyboard.c:848
#19 0x0000000000415e05 in main (argc=3, argv=<optimized out>) at emacs.c:1646
(gdb)

Alexis.