bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#16355: Crash/Hang when restoring via Mac "resume" [Mac/NS]


From: David Reitter
Subject: bug#16355: Crash/Hang when restoring via Mac "resume" [Mac/NS]
Date: Sun, 5 Jan 2014 17:21:58 -0500

If started manually from Finder (rather than automatically after
logging in), Emacs hangs (1).

Sometimes, after a successful reboot and resume of the application, it
hangs when quitting (2).

Usually, when restarting after a boot (with resume), Emacs hangs in
ns_term_init (3).  [Note that this is with a vanilla GNU Emacs --with-ns,
current HEAD, on OS X 10.9.]

The problem is easily reproducible, and I have countless crash reports
from users.  It does not occur with an Emacs 23-based build.

(2) and (3) are in a [autoreleasepool release].

If it is a retain/release issue, NSZombieEnabled=YES won't bring 
up anything during normal runs, and 
I haven't figured out how to do it during resume on 10.9 (without
forking Emacs from within itself, which makes the error go away).

Setting the NSWindow to "not restorable" does not help.
(  [win setRestorable: NO] ).

Any other suggestions on how to debug this?


(1)

(lldb) bt
* thread #1: tid = 0x06bc, 0x00007fff8d996a1a 
libsystem_kernel.dylib`mach_msg_trap + 10, queue = 'com.apple.main-thread, stop 
reason = signal SIGSTOP
    frame #0: 0x00007fff8d996a1a libsystem_kernel.dylib`mach_msg_trap + 10
    frame #1: 0x00007fff8d995dd5 libsystem_kernel.dylib`mach_msg + 253
    frame #2: 0x00007fff97036315 CoreFoundation`__CFRunLoopServiceMachPort + 181
    frame #3: 0x00007fff97035939 CoreFoundation`__CFRunLoopRun + 1161
    frame #4: 0x00007fff97035275 CoreFoundation`CFRunLoopRunSpecific + 309
    frame #5: 0x00007fff95ee3f0d HIToolbox`RunCurrentEventLoopInMode + 226
    frame #6: 0x00007fff95ee3cb7 HIToolbox`ReceiveNextEventCommon + 479
    frame #7: 0x00007fff95ee3abc 
HIToolbox`_BlockUntilNextEventMatchingListInModeWithFilter + 65
    frame #8: 0x00007fff8f71e28e AppKit`_DPSNextEvent + 1434
    frame #9: 0x00007fff8f71d8db AppKit`-[NSApplication 
nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
    frame #10: 0x000000010029ba5c Aquamacs`-[EmacsApp 
run](self=0x0000610000124f60, _cmd=0x00007fff90153296) + 300 at nsterm.m:4597
    frame #11: 0x0000000100299478 Aquamacs`ns_select(nfds=0, 
readfds=0x00007fff5fbfeca0, writefds=0x00007fff5fbfec20, 
exceptfds=0x0000000000000000, timeout=0x00007fff5fbfebf8, 
sigmask=0x0000000000000000) + 1016 at nsterm.m:3769
    frame #12: 0x0000000100252c2f 
Aquamacs`wait_reading_process_output(time_limit=75, nsecs=0, read_kbd=-1, 
do_display=true, wait_for_cell=4328534074, wait_proc=0x0000000000000000, 
just_wait_proc=0) + 3727 at process.c:4579
    frame #13: 0x00000001000087a5 Aquamacs`sit_for(timeout=300, reading=true, 
display_option=1) + 597 at dispnew.c:5766
    frame #14: 0x000000010013243d Aquamacs`read_char(commandflag=1, 
map=4339007302, prev_event=4328534074, used_mouse_menu=0x00007fff5fbff54f, 
end_time=0x0000000000000000) + 4301 at keyboard.c:2815
    frame #15: 0x000000010012de7d 
Aquamacs`read_key_sequence(keybuf=0x00007fff5fbff780, bufsize=30, 
prompt=4328534074, dont_downcase_last=false, can_return_switch_frame=true, 
fix_current_buffer=true, prevent_redisplay=false) + 1757 at keyboard.c:9108
    frame #16: 0x000000010012c9c8 Aquamacs`command_loop_1 + 1224 at 
keyboard.c:1431
    frame #17: 0x00000001001ea289 
Aquamacs`internal_condition_case(bfun=0x000000010012c500, handlers=4328609626, 
hfun=0x0000000100146330) + 441 at eval.c:1331
    frame #18: 0x0000000100146229 Aquamacs`command_loop_2(ignore=4328534074) + 
41 at keyboard.c:1158
    frame #19: 0x00000001001e9871 Aquamacs`internal_catch(tag=4328605818, 
func=0x0000000100146200, arg=4328534074) + 401 at eval.c:1097
    frame #20: 0x000000010012bacb Aquamacs`command_loop + 187 at keyboard.c:1137
    frame #21: 0x000000010012b994 Aquamacs`recursive_edit_1 + 132 at 
keyboard.c:776
    frame #22: 0x000000010012bc70 Aquamacs`Frecursive_edit + 320 at 
keyboard.c:840
    frame #23: 0x0000000100129d22 Aquamacs`main(argc=2, arg



(lldb) f 11
frame #11: 0x0000000100299478 Aquamacs`ns_select(nfds=0, 
readfds=0x00007fff5fbfeca0, writefds=0x00007fff5fbfec20, 
exceptfds=0x0000000000000000, timeout=0x00007fff5fbfebf8, 
sigmask=0x0000000000000000) + 1016 at nsterm.m:3769
   3766     {
   3767       emacs_abort ();
   3768     }
-> 3769   [NSApp run];
   3770   --apploopnr;
   3771   emacs_event = NULL;
   3772   if (nr > 0 && readfds)
(lldb) fr v
(int) nfds = 0
(fd_set *) readfds = 0x00007fff5fbfeca0
(fd_set *) writefds = 0x00007fff5fbfec20
(fd_set *) exceptfds = 0x0000000000000000
(const timespec *) timeout = 0x00007fff5fbfebf8
(const sigset_t *) sigmask = 0x0000000000000000
(int) result = 1
(int) t = 1273043
(int) k = 1
(int) nr = 0
(input_event) event = {
  kind = NO_EVENT
  code = 0
  part = scroll_bar_above_handle
  modifiers = 0
  x = 0
  y = 0
  timestamp = 0
  frame_or_window = 0
  arg = 0
}
(char) c = '\0'


(lldb) f 10
frame #10: 0x000000010029ba5c Aquamacs`-[EmacsApp run](self=0x0000610000124f60, 
_cmd=0x00007fff90153296) + 300 at nsterm.m:4597
   4594     self->isFirst = YES;
   4595
   4596   return self;
-> 4597 }
   4598
   4599 - (void)run
   4600 {
(lldb) fr v
(EmacsApp *) self = 0x0000610000124f60
(SEL) _cmd = "run"
(NSAutoreleasePool *) pool = 0x000060000005ca10
(NSEvent *) event = 0x00007fff5fbfe810
(lldb) po event
[no Objective-C description available]





(2)

(lldb) bt
* thread #1: tid = 0x0fe3, 0x00007fff8eb3f5fd libobjc.A.dylib`(anonymous 
namespace)::AutoreleasePoolPage::pop(void*) + 409, queue = 
'com.apple.main-thread, stop reason = EXC_BAD_ACCESS (code=1, address=0x10)
    frame #0: 0x00007fff8eb3f5fd libobjc.A.dylib`(anonymous 
namespace)::AutoreleasePoolPage::pop(void*) + 409
    frame #1: 0x00007fff94dacd72 CoreFoundation`_CFAutoreleasePoolPop + 50
    frame #2: 0x00007fff8ed54e4c Foundation`-[NSAutoreleasePool release] + 140
    frame #3: 0x00000001002b1521 
Aquamacs`ns_read_socket(terminal=0x0000000105a22ba8, 
hold_quit=0x00007fff5fbfc510) + 273 at nsterm.m:3632
    frame #4: 0x0000000100130ccd Aquamacs`gobble_input + 173 at keyboard.c:6865
    frame #5: 0x0000000100138ebd Aquamacs`handle_async_input + 13 at 
keyboard.c:7105
    frame #6: 0x000000010012f973 Aquamacs`process_pending_signals + 19 at 
keyboard.c:7119
    frame #7: 0x0000000100138f2b Aquamacs`unblock_input_to(level=0) + 75 at 
keyboard.c:7134
    frame #8: 0x000000010012c31e Aquamacs`totally_unblock_input + 14 at 
keyboard.c:7157
    frame #9: 0x00000001001283dc Aquamacs`terminate_due_to_signal(sig=11, 
backtrace_limit=40) + 44 at emacs.c:351
    frame #10: 0x0000000100156da8 Aquamacs`handle_fatal_signal(sig=11) + 24 at 
sysdep.c:1624
    frame #11: 0x0000000100156d7a Aquamacs`deliver_thread_signal(sig=11, 
handler=0x0000000100156d90) + 154 at sysdep.c:1598
    frame #12: 0x000000010015575a Aquamacs`deliver_fatal_thread_signal(sig=11) 
+ 26 at sysdep.c:1636
    frame #13: 0x00007fff9616a5aa libsystem_platform.dylib`_sigtramp + 26
    frame #14: 0x00007fff8eb3f62b libobjc.A.dylib`(anonymous 
namespace)::AutoreleasePoolPage::pop(void*) + 455
    frame #15: 0x00007fff94dacd72 CoreFoundation`_CFAutoreleasePoolPop + 50
    frame #16: 0x00007fff8ed54e4c Foundation`-[NSAutoreleasePool release] + 140
    frame #17: 0x000000010029bab6 Aquamacs`-[EmacsApp 
run](self=0x0000610000124380, _cmd=0x00007fff8df02296) + 390 at nsterm.m:4602
    frame #18: 0x000000010029b2cb 
Aquamacs`ns_term_init(display_name=4367432889) + 6459 at nsterm.m:4530
    frame #19: 0x00000001002bf9fb 
Aquamacs`Fx_open_connection(display=4367432889, resource_string=4328534074, 
must_succeed=4328534122) + 43 at nsfns.m:2503
    frame #20: 0x00000001001ec6cf Aquamacs`Ffuncall(nargs=4, 
args=0x00007fff5fbfd6f0) + 1119 at eval.c:2796
    frame #21: 0x00000001002450c7 Aquamacs`exec_byte_code(bytestr=4300060001, 
vector=4300060037, maxdepth=32, args_template=1024, nargs=0, 
args=0x00007fff5fbfde30) + 3799 at bytecode.c:919
    frame #22: 0x00000001001ed7c4 Aquamacs`funcall_lambda(fun=4300059957, 
nargs=0, arg_vector=0x00007fff5fbfde30) + 500 at eval.c:2959
    frame #23: 0x00000001001ec8a1 Aquamacs`Ffuncall(nargs=1, 
args=0x00007fff5fbfde28) + 1585 at eval.c:2838
    frame #24: 0x00000001002450c7 Aquamacs`exec_byte_code(bytestr=4298936897, 
vector=4298936933, maxdepth=16, args_template=0, nargs=0, 
args=0x00007fff5fbfe548) + 3799 at bytecode.c:919
    frame #25: 0x00000001001ed7c4 Aquamacs`funcall_lambda(fun=4298936853, 
nargs=0, arg_vector=0x00007fff5fbfe548) + 500 at eval.c:2959
    frame #26: 0x00000001001ec8a1 Aquamacs`Ffuncall(nargs=1, 
args=0x00007fff5fbfe540) + 1585 at eval.c:2838
    frame #27: 0x00000001001e7087 Aquamacs`eval_sub(form=4391690758) + 1527 at 
eval.c:2131
    frame #28: 0x00000001001ea07c 
Aquamacs`internal_lisp_condition_case(var=4387480506, bodyform=4391690758, 
handlers=4391690630) + 1340 at eval.c:1300
    frame #29: 0x0000000100246832 Aquamacs`exec_byte_code(bytestr=4298933505, 
vector=4298933541, maxdepth=68, args_template=0, nargs=0, 
args=0x00007fff5fbfef58) + 9794 at bytecode.c:1169
    frame #30: 0x00000001001ed7c4 Aquamacs`funcall_lambda(fun=4298933461, 
nargs=0, arg_vector=0x00007fff5fbfef58) + 500 at eval.c:2959
    frame #31: 0x00000001001ec8a1 Aquamacs`Ffuncall(nargs=1, 
args=0x00007fff5fbfef50) + 1585 at eval.c:2838
    frame #32: 0x00000001002450c7 Aquamacs`exec_byte_code(bytestr=4298930305, 
vector=4298930341, maxdepth=32, args_template=0, nargs=0, 
args=0x00007fff5fbff5e0) + 3799 at bytecode.c:919
    frame #33: 0x00000001001ed7c4 Aquamacs`funcall_lambda(fun=4298930261, 
nargs=0, arg_vector=0x00007fff5fbff5e0) + 500 at eval.c:2959
    frame #34: 0x00000001001ebbb6 Aquamacs`apply_lambda(fun=4298930261, 
args=4328534074) + 438 at eval.c:2898
    frame #35: 0x00000001001e7403 Aquamacs`eval_sub(form=4387394246) + 2419 at 
eval.c:2204
    frame #36: 0x00000001001eb727 Aquamacs`Feval(form=4387394246, 
lexical=4328534074) + 151 at eval.c:1977
    frame #37: 0x0000000100146321 Aquamacs`top_level_2 + 33 at keyboard.c:1167
    frame #38: 0x00000001001ea289 
Aquamacs`internal_condition_case(bfun=0x0000000100146300, handlers=4328609626, 
hfun=0x0000000100146330) + 441 at eval.c:1331
    frame #39: 0x00000001001462a7 Aquamacs`top_level_1(ignore=4328534074) + 71 
at keyboard.c:1175
    frame #40: 0x00000001001e9871 Aquamacs`internal_catch(tag=4328605818, 
func=0x0000000100146260, arg=4328534074) + 401 at eval.c:1097
    frame #41: 0x000000010012baa7 Aquamacs`command_loop + 151 at keyboard.c:1136
    frame #42: 0x000000010012b994 Aquamacs`recursive_edit_1 + 132 at 
keyboard.c:776
    frame #43: 0x000000010012bc70 Aquamacs`Frecursive_edit + 320 at 
keyboard.c:840
    frame #44: 0x0000000100129d22 Aquamacs`main(argc=2, 
argv=0x00007fff5fbffcb0) + 5394 at emacs.c:1581
    frame #45: 0x00007fff9393a5fd libdyld.dylib`start + 1




(3)
(lldb) attach 647
Process 647 stopped
Executable module set to 
"/Users/dr/em24.git/nextstep/Emacs.app/Contents/MacOS/Emacs".
Architecture set to: x86_64-apple-macosx.
(lldb) bt
* thread #1: tid = 0x1d1d, 0x00007fff87fa35fd libobjc.A.dylib`(anonymous 
namespace)::AutoreleasePoolPage::pop(void*) + 409, queue = 
'com.apple.main-thread, stop reason = EXC_BAD_ACCESS (code=1, address=0x10)
    frame #0: 0x00007fff87fa35fd libobjc.A.dylib`(anonymous 
namespace)::AutoreleasePoolPage::pop(void*) + 409
    frame #1: 0x00007fff8e210d72 CoreFoundation`_CFAutoreleasePoolPop + 50
    frame #2: 0x00007fff881b8e4c Foundation`-[NSAutoreleasePool release] + 140
    frame #3: 0x00000001002b07b1 
Emacs`ns_read_socket(terminal=0x0000000102213b68, hold_quit=0x00007fff5fbfc690) 
+ 273 at nsterm.m:3611
    frame #4: 0x000000010013873d Emacs`gobble_input + 173 at keyboard.c:6838
    frame #5: 0x0000000100140aad Emacs`handle_async_input + 13 at 
keyboard.c:7078
    frame #6: 0x00000001001375c3 Emacs`process_pending_signals + 19 at 
keyboard.c:7092
    frame #7: 0x0000000100140b1b Emacs`unblock_input_to(level=0) + 75 at 
keyboard.c:7107
    frame #8: 0x00000001001341ae Emacs`totally_unblock_input + 14 at 
keyboard.c:7130
    frame #9: 0x00000001001300dc Emacs`terminate_due_to_signal(sig=11, 
backtrace_limit=40) + 44 at emacs.c:352
    frame #10: 0x000000010015e1c8 Emacs`handle_fatal_signal(sig=11) + 24 at 
sysdep.c:1628
    frame #11: 0x000000010015e19a Emacs`deliver_thread_signal(sig=11, 
handler=0x000000010015e1b0) + 154 at sysdep.c:1602
    frame #12: 0x000000010015cb7a Emacs`deliver_fatal_thread_signal(sig=11) + 
26 at sysdep.c:1640
    frame #13: 0x00007fff8f5ce5aa libsystem_platform.dylib`_sigtramp + 26
    frame #14: 0x00007fff87fa362b libobjc.A.dylib`(anonymous 
namespace)::AutoreleasePoolPage::pop(void*) + 455
    frame #15: 0x00007fff8e210d72 CoreFoundation`_CFAutoreleasePoolPop + 50
    frame #16: 0x00007fff881b8e4c Foundation`-[NSAutoreleasePool release] + 140
    frame #17: 0x00000001002a0566 Emacs`-[EmacsApp 
run](self=0x00006000001210e0, _cmd=0x00007fff87366296) + 390 at nsterm.m:4503
    frame #18: 0x000000010029fd7e Emacs`ns_term_init(display_name=4317146553) + 
4446 at nsterm.m:4424
    frame #19: 0x00000001002bd25b Emacs`Fx_open_connection(display=4317146553, 
resource_string=4328534074, must_succeed=4328534122) + 43 at nsfns.m:1816
    frame #20: 0x00000001001f1c9f Emacs`Ffuncall(nargs=4, 
args=0x00007fff5fbfd6d0) + 1119 at eval.c:2813
    frame #21: 0x000000010024a907 Emacs`exec_byte_code(bytestr=4300036977, 
vector=4300037013, maxdepth=32, args_template=1024, nargs=0, 
args=0x00007fff5fbfde10) + 3799 at bytecode.c:919
    frame #22: 0x00000001001f2d94 Emacs`funcall_lambda(fun=4300036933, nargs=0, 
arg_vector=0x00007fff5fbfde10) + 500 at eval.c:2976
    frame #23: 0x00000001001f1e71 Emacs`Ffuncall(nargs=1, 
args=0x00007fff5fbfde08) + 1585 at eval.c:2855
    frame #24: 0x000000010024a907 Emacs`exec_byte_code(bytestr=4298918657, 
vector=4298918693, maxdepth=16, args_template=0, nargs=0, 
args=0x00007fff5fbfe528) + 3799 at bytecode.c:919
    frame #25: 0x00000001001f2d94 Emacs`funcall_lambda(fun=4298918613, nargs=0, 
arg_vector=0x00007fff5fbfe528) + 500 at eval.c:2976
    frame #26: 0x00000001001f1e71 Emacs`Ffuncall(nargs=1, 
args=0x00007fff5fbfe520) + 1585 at eval.c:2855
    frame #27: 0x00000001001ec777 Emacs`eval_sub(form=4387546438) + 1527 at 
eval.c:2148
    frame #28: 0x00000001001ef6ff 
Emacs`internal_lisp_condition_case(var=4328801402, bodyform=4387546438, 
handlers=4387545718) + 1295 at eval.c:1314
    frame #29: 0x000000010024c045 Emacs`exec_byte_code(bytestr=4298915401, 
vector=4298915437, maxdepth=68, args_template=0, nargs=0, 
args=0x00007fff5fbfef38) + 9749 at bytecode.c:1169
    frame #30: 0x00000001001f2d94 Emacs`funcall_lambda(fun=4298915357, nargs=0, 
arg_vector=0x00007fff5fbfef38) + 500 at eval.c:2976
    frame #31: 0x00000001001f1e71 Emacs`Ffuncall(nargs=1, 
args=0x00007fff5fbfef30) + 1585 at eval.c:2855
    frame #32: 0x000000010024a907 Emacs`exec_byte_code(bytestr=4298911841, 
vector=4298911877, maxdepth=48, args_template=0, nargs=0, 
args=0x00007fff5fbff5e0) + 3799 at bytecode.c:919
    frame #33: 0x00000001001f2d94 Emacs`funcall_lambda(fun=4298911797, nargs=0, 
arg_vector=0x00007fff5fbff5e0) + 500 at eval.c:2976
    frame #34: 0x00000001001f1186 Emacs`apply_lambda(fun=4298911797, 
args=4328534074) + 438 at eval.c:2915
    frame #35: 0x00000001001ecaf3 Emacs`eval_sub(form=4387380470) + 2419 at 
eval.c:2221
    frame #36: 0x00000001001f0cf7 Emacs`Feval(form=4387380470, 
lexical=4328534074) + 151 at eval.c:1994
    frame #37: 0x000000010014e351 Emacs`top_level_2 + 33 at keyboard.c:1179
    frame #38: 0x00000001001ef8dc 
Emacs`internal_condition_case(bfun=0x000000010014e330, handlers=4328600602, 
hfun=0x000000010014e360) + 396 at eval.c:1345
    frame #39: 0x000000010014e2d7 Emacs`top_level_1(ignore=4328534074) + 71 at 
keyboard.c:1187
    frame #40: 0x00000001001eef14 Emacs`internal_catch(tag=4328596794, 
func=0x000000010014e290, arg=4328534074) + 356 at eval.c:1109
    frame #41: 0x00000001001338e7 Emacs`command_loop + 151 at keyboard.c:1148
    frame #42: 0x00000001001337d4 Emacs`recursive_edit_1 + 132 at keyboard.c:777
    frame #43: 0x0000000100133ab0 Emacs`Frecursive_edit + 320 at keyboard.c:841
    frame #44: 0x0000000100131a96 Emacs`main(argc=2, argv=0x00007fff5fbffcc0) + 
5510 at emacs.c:1637
    frame #45: 0x00007fff8cd9e5fd libdyld.dylib`start + 1






reply via email to

[Prev in Thread] Current Thread [Next in Thread]