Subject: bug#1186: 23.0.60; Abort trap when loading dbus in tty

From: Magnus Henoch <[email-masked]>
Date: Wed, 22 Oct 2008 00:09:52 +0200

With more debugging and less optimization I get:

xd_read_message: Event received: DBUS_MESSAGE_TYPE_SIGNAL 2 org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus NameAcquired (:1.10)
Breakpoint 1, abort () at /media/e/src/emacs/src/emacs.c:424              xd_retrieve_arg: s :1.10
424       kill (getpid (), SIGABRT);
(gdb) bt full
#0  abort () at /media/e/src/emacs/src/emacs.c:424
No locals.
#1  0x01a566cc in Fsignal (error_symbol=30504705, data=45395581) at /media/e/src/emacs/src/eval.c:1651
        allhandlers = (struct handler *) 0xffffc408
        conditions = -277077180
        string = -277132056
        real_error_symbol = 190
        bp = (struct backtrace *) 0x25d9273
#2  0x01a56ab4 in xsignal (error_symbol=30504705, data=45395581) at /media/e/src/emacs/src/eval.c:1750
No locals.
#3  0x01a56b18 in xsignal1 (error_symbol=30504705, arg=39686771) at /media/e/src/emacs/src/eval.c:1767
No locals.
#4  0x01986158 in xd_initialize (bus=30504729) at /media/e/src/emacs/src/dbusbind.c:688
        s = "Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection w"...
        connection = (DBusConnection *) 0x0
        derror = {
  name = 0x0, 
  message = 0x0, 
  dummy1 = 1, 
  dummy2 = 0, 
  dummy3 = 0, 
  dummy4 = 0, 
  dummy5 = 0, 
  padding1 = 0xffffb850
}
#5  0x01990700 in xd_read_message (bus=30504729) at /media/e/src/emacs/src/dbusbind.c:1406
        args = 1
        key = -277295760
        value = -17088
        gcpro1 = {
  next = 0xef7be218, 
  var = 0xffffbcf0, 
  nvars = 463
}
        event = {
  kind = ASCII_KEYSTROKE_EVENT, 
  code = -277076012, 
  part = 4017890868, 
  modifiers = 844, 
  x = -277072772, 
  y = 0, 
  timestamp = 35845376, 
  padding = {0xffffc440, 0xef7e087c}, 
  frame_or_window = -17168, 
  arg = -17120
}
        connection = (DBusConnection *) 0xffffbcb0
        dmessage = (DBusMessage *) 0xef7e0434
        iter = {
  dummy1 = 0xef79d290, 
  dummy2 = 0x1, 
  dummy3 = 4017891284, 
  dummy4 = -277076428, 
  dummy5 = 844, 
  dummy6 = -277072772, 
  dummy7 = -17136, 
  dummy8 = -16992, 
  dummy9 = -277295760, 
  dummy10 = -276954060, 
  dummy11 = -17120, 
  pad1 = -17088, 
  pad2 = -277296100, 
  pad3 = 0x1db1e84
}
        dtype = 0
        mtype = 0
        serial = 31137664
        uname = 0x222f400 ""
        path = 0xef78cc1c "\201>\200\034\200\t"
        interface = 0xffffbcb0 "\377\377\275@\357x\315p"
        member = 0xffffbc90 "\377\377\274\260\357x\314\034\002\"\364"
        __PRETTY_FUNCTION__ = "xd_read_message"
#6  0x01a5645c in internal_condition_case_1 (bfun=0x19906d8 <xd_read_message>, arg=30504729, handlers=30236913, hfun=0x1a5f30c <Fidentity>)
    at /media/e/src/emacs/src/eval.c:1559
        val = 1224624586
        c = {
  tag = 30173185, 
  val = 30173185, 
  next = 0xffffd07c, 
  gcpro = 0x0, 
  jmp = {26854, 0, 28547652, -15808, 27616204, 1140850722, 29912704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -268525568, -268480888, -10572, -10556, 1084, 28614684, 
    -15808, -15600, 27492528, 56, -15664, -15632, 25218740, 30504753, 30422018, -15600, 25691128, 44756499, 30173185, 30173185, 30173185, 30173185, 8, -277952056, 
    25216028, 30312960, -15600, -15568, 47, 31141084, 47, 31141084, 45699347, 45699347, 48, -15456, 45699395, 30504753, 45126837, 30591093, 4, -15444, -15504, 
    30173185, 30173233, 30393233, -15472, -15376, 27631012, 30173185, 2, 44756499, 30173185, 30173185, 30173185, 30173185, 27487208, 1, 2, 30173185, 2, 45395677, 
    -15456, -14224, 1084, 30389826, -15440, -14912, 27616348, 30173185, 30173185, 30173185, -12164, 45395653, -1, -1, 1084, -15440, -15392, -14864, 27616348, 
    30173185}, 
  backlist = 0x0, 
  handlerlist = 0xffffd238, 
  lisp_eval_depth = 0, 
  pdlcount = 3, 
  poll_suppress_count = 0, 
  interrupt_input_blocked = 0, 
  byte_stack = 0x0
}
        h = {
  handler = 30236913, 
  var = 30173185, 
  chosen_clause = 1140850722, 
  tag = 0xffffc24c, 
  next = 0xffffd238
}
#7  0x01991b4c in xd_read_queued_messages () at /media/e/src/emacs/src/dbusbind.c:1557
No locals.
#8  0x019a5100 in gobble_input (expected=0) at /media/e/src/emacs/src/keyboard.c:6898
No locals.
#9  0x019a5080 in get_input_pending (addr=0x1c7ff80, flags=0) at /media/e/src/emacs/src/keyboard.c:6886
No locals.
#10 0x019ae444 in detect_input_pending () at /media/e/src/emacs/src/keyboard.c:10506
No locals.
#11 0x01ac850c in wait_reading_process_output (time_limit=30, microsecs=0, read_kbd=-1, do_display=1, wait_for_cell=30173185, wait_proc=0x0, just_wait_proc=0)
    at /media/e/src/emacs/src/process.c:4768
        timeout_reduced_for_timers = 1
        channel = 0
        nfds = 0
        Available = {
  fds_bits = {32, 0, 0, 0, 0, 0, 0, 0}
}
        Connecting = {
  fds_bits = {0, 0, 0, 0, 0, 0, 0, 0}
}
        check_connect = 0
        check_delay = 0
        no_avail = 0
        xerrno = 31015172
        proc = 31015172
        timeout = {
  tv_sec = 0, 
  tv_usec = 478075
}
        end_time = {
  tv_sec = 1224625086, 
  tv_usec = 548939
}
        wait_channel = -1
        got_some_input = 0
        count = 2
#12 0x0181883c in sit_for (timeout=240, reading=1, do_display=1) at /media/e/src/emacs/src/dispnew.c:6637
        sec = 30
        usec = 0
#13 0x0199c5fc in read_char (commandflag=1, nmaps=2, maps=0xffffcbf0, prev_event=30173185, used_mouse_menu=0xffffcd2c, end_time=0x0)
    at /media/e/src/emacs/src/keyboard.c:2892
        tem0 = -13984
        timeout = 30
        delay_level = 4
        buffer_size = 1
        c = 30173185
        count = -13984
        jmpcount = 2
        local_getcjmp = {0, 92, 28547652, -14464, 26853240, 1140850722, 29912704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -268525568, -268480888, -10572, -10556, 1084, 
  28614684, -14464, 25363576, 40201745, 30173185, 0, 0, -13984, 30311936, 1, 1, 0, 0, -14096, 27485028, 39284552, 111, 29, 1, 192, -14144, -13872, 3, 114, 3, 111, 
  51, 80, 111, 29, 0, 30327458, -14096, -14016, 28165756, 39284552, 111, 29, 51, 39284552, 39284552, -13936, 3, 114, 3, 111, 51, 80, 30212100, -13968, 27712484, 1, 
  -14016, -13968, 28165756, 1, 30212100, 1, 51, 39284552, 39284552, 1, 191, 191, -13968, -13856, 28167456, 30212100, 51, -13888, 51, 0, 0, 191, 1, 51, 50}
        save_jump = {0 <repeats 100 times>}
        key_already_recorded = 0
        tem = 0
        save = 1
        previous_echo_area_message = 30173185
        also_record = 30173185
        reread = 0
        gcpro1 = {
  next = 0x1cc6801, 
  var = 0x0, 
  nvars = -13680
}
        gcpro2 = {
  next = 0xffffcb50, 
  var = 0xffffcbb0, 
  nvars = 1084
}
        polling_stopped_here = 0
        orig_kboard = (struct kboard *) 0x1cfec80
#14 0x019aab40 in read_key_sequence (keybuf=0xffffcf1c, bufsize=30, prompt=30173185, dont_downcase_last=0, can_return_switch_frame=1, fix_current_buffer=1)
    at /media/e/src/emacs/src/keyboard.c:9343
        interrupted_kboard = (KBOARD *) 0x1cfec80
        interrupted_frame = (struct frame *) 0x1ce8a00
        key = 30419017
        used_mouse_menu = 0
        echo_local_start = 0
        last_real_key_start = 0
        keys_local_start = 0
        local_first_binding = 0
        from_string = 30173185
        count = 2
        t = 0
        echo_start = 0
        keys_start = 0
        nmaps = 2
        nmaps_allocated = 2
        defs = (Lisp_Object * volatile) 0xffffcbd0
        submaps = (Lisp_Object * volatile) 0xffffcbf0
        orig_local_map = 45203885
        orig_keymap = 30173185
        localized_local_map = 0
        first_binding = 0
        first_unbound = 31
        mock_input = 0
        fkey = {
  parent = 30589669, 
  map = 30589669, 
  start = 0, 
  end = 0
}
        keytran = {
  parent = 30162813, 
  map = 30162813, 
  start = 0, 
  end = 0
}
        indec = {
  parent = 30589677, 
  map = 30589677, 
  start = 0, 
  end = 0
}
        shift_translated = 0
        delayed_switch_frame = 30173185
        original_uppercase = -12944
        original_uppercase_position = -1
        dummyflag = 0
        starting_buffer = (struct buffer *) 0x1cd0000
        fake_prefixed_keys = 30173185
        gcpro1 = {
  next = 0xffffcd20, 
  var = 0xffffcd50, 
  nvars = 27485092
}
#15 0x01998398 in command_loop_1 () at /media/e/src/emacs/src/keyboard.c:1621
        cmd = 30233201
        lose = 27632324
        nonundocount = 0
        keybuf = {216, 960, 27632004, 0, 30173185, -12384, 30173185, 0, 5, -12400, -268475116, 1936863091, -12464, -12384, 26950560, 28861500, 30173185, 1, 
  30593101, 0, -12512, -12512, 30589061, 30173185, 30938893, 0, 1084, 7, -12400, -12208}
        i = 2
        prev_modiff = 11
        prev_buffer = (struct buffer *) 0x1cd0000
        already_adjusted = 0
#16 0x01a562b0 in internal_condition_case (bfun=0x1997f44 <command_loop_1>, handlers=30236913, hfun=0x1997528 <cmd_error>) at /media/e/src/emacs/src/eval.c:1511
        val = 30593101
        c = {
  tag = 30173185, 
  val = 30173185, 
  next = 0xffffd2a8, 
  gcpro = 0x0, 
  jmp = {0, -12032, 28547652, -12176, 27615784, 1140850754, 29912704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -268525568, -268480888, -10572, -10556, 1084, 28614684, 
    -12176, -283565024, 30406681, -268440400, -12032, -11952, 27633564, -268440400, 0, 1, 1, 1, 30238745, 30173185, 30173185, 28829076, 1, -11836, 71, 736, 
    -283565024, -11856, -283570416, -268440400, -11952, 30173185, 27631548, 603996226, 30173185, -11796, 1, 660, 30238537, 30173209, 0, 0, -11836, 1, 26649, 0, 
    30173185, 1, -11836, 0, 327, 30312964, 30406681, 0, -11824, -11280, 28029200, 1124476, -269972992, 30173185, 30312964, -268480888, -11824, -11280, 28326540, 
    31460352, 166, 1, 30312960, 152, 1, -283551692, -2097152, 5, -11776, -11712, 28326712, 0, 10, -11664, -2097152, 152}, 
  backlist = 0x0, 
  handlerlist = 0x0, 
  lisp_eval_depth = 0, 
  pdlcount = 2, 
  poll_suppress_count = 0, 
  interrupt_input_blocked = 0, 
  byte_stack = 0x0
}
        h = {
  handler = 30236913, 
  var = 30173185, 
  chosen_clause = -11632, 
  tag = 0xffffd07c, 
  next = 0x0
}
#17 0x01997a74 in command_loop_2 () at /media/e/src/emacs/src/keyboard.c:1338
        val = -18416
#18 0x01a55b2c in internal_catch (tag=30232985, func=0x1997a40 <command_loop_2>, arg=30173185) at /media/e/src/emacs/src/eval.c:1247
        c = {
  tag = 30232985, 
  val = 30173185, 
  next = 0x0, 
  gcpro = 0x0, 
  jmp = {30655520, 30097208, 28547652, -11616, 27613964, 1140850754, 29912704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -268525568, -268480888, -10572, -10556, 1084, 
    28614684, -11616, 30173185, -11844, 12, 28830880, 135, 0, 29710790, 0, -11840, 28830859, 29710778, 28830876, 0, 0, 30097258, 28830859, 28830876, 16, 0, 0, 
    31459072, 1, 30097214, 30655531, 0, -11280, 1, -11344, 63, 30173185, 30800896, 0, -11360, -11328, 28319404, 1207959553, 1, -11296, 28331568, -277763640, 0, 
  handlerlist = 0x0, 
  lisp_eval_depth = 0, 
  pdlcount = 2, 
  poll_suppress_count = 0, 
  interrupt_input_blocked = 0, 
  byte_stack = 0x0
}
        h = {
  handler = 30236913, 
  var = 30173185, 
  chosen_clause = -11632, 
  tag = 0xffffd07c, 
  next = 0x0
}
#17 0x01997a74 in command_loop_2 () at /media/e/src/emacs/src/keyboard.c:1338
        val = -18416
#18 0x01a55b2c in internal_catch (tag=30232985, func=0x1997a40 <command_loop_2>, arg=30173185) at /media/e/src/emacs/src/eval.c:1247
        c = {
  tag = 30232985, 
  val = 30173185, 
  next = 0x0, 
  gcpro = 0x0, 
  jmp = {30655520, 30097208, 28547652, -11616, 27613964, 1140850754, 29912704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, -268525568, -268480888, -10572, -10556, 1084, 
    28614684, -11616, 30173185, -11844, 12, 28830880, 135, 0, 29710790, 0, -11840, 28830859, 29710778, 28830876, 0, 0, 30097258, 28830859, 28830876, 16, 0, 0, 
    31459072, 1, 30097214, 30655531, 0, -11280, 1, -11344, 63, 30173185, 30800896, 0, -11360, -11328, 28319404, 1207959553, 1, -11296, 28331568, -277763640, 0, 
---Type <return> to continue, or q <return> to quit---
    -11232, -277867900, 0, 30173185, 30312964, 30312964, -11840, 12, -11136, 30406681, 30097208, -11280, -11088, 27633564, 30448289, 30212096, -11184, 30422210, 
    30173185, 2, -11168, 30173185, 28830836, -11232, -11136, 27487208, 0, 30173185, 0, 2, 30212096, 1, 1, 30311960}, 
  backlist = 0x0, 
  handlerlist = 0x0, 
  lisp_eval_depth = 0, 
  pdlcount = 2, 
  poll_suppress_count = 0, 
  interrupt_input_blocked = 0, 
  byte_stack = 0x0
}
#19 0x019979f0 in command_loop () at /media/e/src/emacs/src/keyboard.c:1317
No locals.
#20 0x01996e34 in recursive_edit_1 () at /media/e/src/emacs/src/keyboard.c:942
        count = 1
        val = 100
#21 0x019970a0 in Frecursive_edit () at /media/e/src/emacs/src/keyboard.c:1004
        count = 0
        buffer = 30173185
#22 0x01994d30 in main (argc=3, argv=0xffffd6b4) at /media/e/src/emacs/src/emacs.c:1728
        dummy = -268480888
        stack_bottom_variable = 0 '\0'
        do_initial_setlocale = 1
        skip_args = 1
        rlim = {
  rlim_cur = 4440064, 
  rlim_max = 33554432
}
        no_loadup = 0
        junk = 0x0

So, from frame 1, I see that the immediate cause of the crash is that an
error was thrown while Emacs was waiting for output.  This happens only
when xd_initialize is called with :system as an argument; the system bus
is apparently not correctly configured on my system - the dbus library
finds the socket, sends a Hello message, but never gets any answer, as
seen in the s variable of socket 4.

And when I turn off the system bus and try again, the same thing
happens, but with another message:

#4  0x01986158 in xd_initialize (bus=30504729) at /media/e/src/emacs/src/dbusbind.c:688
        s = "Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory", '\0' <repeats 937 times>, "\360"

I don't understand why this doesn't happen when I run Emacs in X...

Magnus