Subject: Re: 23.0.60; make-frame-on-display segfaults

From: Óscar Fuentes <[email-masked]>
Date: Sat, 06 Dec 2008 20:29:53 +0100

Chong Yidong <[email-masked]> writes:

>> Just after executing `make-frame-on-display', emacs segfaults.
>
> Can anyone reproduce this?  I currently don't have access to a computer
> setup to test make-frame-on-display for remote hosts.
>
> Oscar, could you try compiling without optimizations (CFLAGS="-g") and
> gettting a backtrace again?

Starting program: /home/oscar/dev/other/emacs/src/emacs -Q                   
[Thread debugging using libthread_db enabled]                                
[New Thread 0x7f2e60e53770 (LWP 14057)]                                      
Locking assertion failure.  Backtrace:                                       
#0 /usr/lib/libxcb-xlib.so.0 [0x7f2e5a5169fc]                                
#1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_lock+0x17) [0x7f2e5a516b77]            
#2 /usr/lib/libX11.so.6 [0x7f2e5d00d8c0]                                     
#3 /usr/lib/libX11.so.6(XFlush+0x12) [0x7f2e5cfe6092]                        
#4 /usr/lib/libgdk-x11-2.0.so.0(gdk_window_process_all_updates+0xd0) [0x7f2e60416b20]                                                                               
#5 /home/oscar/dev/other/emacs/src/emacs [0x4edfa7]                               
#6 /home/oscar/dev/other/emacs/src/emacs [0x4ee2c6]                               
#7 /home/oscar/dev/other/emacs/src/emacs [0x4eea2d]                               
#8 /home/oscar/dev/other/emacs/src/emacs [0x4ee98b]                               
#9 /usr/lib/libX11.so.6(_XError+0xf4) [0x7f2e5d006784]                            
#10 /usr/lib/libX11.so.6(_XReply+0x243) [0x7f2e5d00e673]                          
#11 /usr/lib/libX11.so.6(XGetGeometry+0x8f) [0x7f2e5cfe9cff]                      
#12 /usr/lib/libgdk-x11-2.0.so.0(gdk_pixmap_foreign_new_for_display+0xa0) [0x7f2e60436b60]                                                                          
#13 /usr/lib/gtk-2.0/2.10.0/engines/libqt4engine.so [0x7f2e596c179e]              
#14 /usr/lib/gtk-2.0/2.10.0/engines/libqt4engine.so [0x7f2e596bb021]              
#15 /usr/lib/libgtk-x11-2.0.so.0 [0x7f2e607732fd]                                 
#16 /usr/lib/libgtk-x11-2.0.so.0 [0x7f2e607b0908]                                 
#17 /usr/lib/libgobject-2.0.so.0(g_closure_invoke+0x16d) [0x7f2e5e8a025d]         
#18 /usr/lib/libgobject-2.0.so.0 [0x7f2e5e8b5c3b]                                 
#19 /usr/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x63a) [0x7f2e5e8b748a]     

(emacs:14057): GLib-GObject-CRITICAL **: g_object_unref: assertion `G_IS_OBJECT (object)' failed                                                                    

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f2e60e53770 (LWP 14057)]    
0x00000000005629d9 in marker_byte_position (marker=11677457) at marker.c:823
823       if (i < BUF_BEG_BYTE (buf) || i > BUF_Z_BYTE (buf))               
(gdb) bt full                                                               
#0  0x00000000005629d9 in marker_byte_position (marker=11677457) at marker.c:823
        m = (struct Lisp_Marker *) 0xb22ee1                                     
        buf = (struct buffer *) 0x8a9463                                        
        i = 11677409                                                            
#1  0x000000000054f769 in set_buffer_internal_1 (b=0xb22ee0) at buffer.c:1904   
        old_buf = (struct buffer *) 0xb2cbd0                                    
        tail = 4294967296                                                       
        valcontents = 43328032                                                  
        tem = 0                                                                 
#2  0x000000000044bb76 in redisplay_window (window=43752452, just_this_one_p=0) 
    at xdisp.c:13292                                                            
        w = (struct window *) 0x29b9c00                                         
        f = (struct frame *) 0x29b9790                                          
        buffer = (struct buffer *) 0xb22ee0                                     
        old = (struct buffer *) 0xb2cbd0                                        
        lpoint = {charpos = 192, bytepos = 192}                                 
        opoint = {charpos = 192, bytepos = 192}                                 
        startp = {charpos = 1, bytepos = 1}                                     
        update_mode_line = 1                                                    
        tem = 0                                                                 
        it = {window = 0, w = 0x2, f = 0x2932da0, method = 4294967275,          
  stop_charpos = 1, end_charpos = 1760032800, s = 0x4320b8 "H\201Ĩ",            
  string_nchars = 0, region_beg_charpos = 0, region_end_charpos = 43752448,     
  redisplay_end_trigger_charpos = 0, multibyte_p = 0, header_line_p = 0,        
  string_from_display_prop_p = 0, ellipsis_p = 0, avoid_cursor_p = 0,           
  dp = 0x48596f, dpvec = 0x0, dpend = 0x29f3180, dpvec_char_len = 1,            
  dpvec_face_id = 1, saved_face_id = 43752448, ctl_chars = {140734953420944,    
    4338268288, 1760032752, 43751904, 0, 128, 140734953420896, 4399669,         
    140734953420832, 11677409, 43987328, 0, 4338719200, 0, 0, 4294967297},      
  start = {pos = {charpos = 43752448, bytepos = 0},                             
---Type <return> to continue, or q <return> to quit---                          
    overlay_string_index = 1760032912, string_pos = {charpos = 32767,           
      bytepos = 43300992}, dpvec_index = 0}, current = {pos = {                 
      charpos = 43987328, bytepos = 0}, overlay_string_index = 11677409,        
    string_pos = {charpos = -1, bytepos = 1}, dpvec_index = 0},                 
  n_overlay_strings = 1760034608, overlay_strings = {4513159, 43751312, 1,      
    4294967297, 43752452, 43752452, 43752448, 43751312, 4294967296, 1, 0,       
    -4294967296, 4294967295, 1, 0, 0}, string_overlays = {0, 0, 4294967295,     
    0 <repeats 13 times>}, string = 0, from_overlay = 0, stack = {{string = 0,  
      string_nchars = 1, end_charpos = 1, stop_charpos = -1, cmp_it = {         
        stop_pos = -1, id = 1, ch = 1, lookback = -1, nglyphs = -1, nchars = -1, 
        nbytes = -1, from = 0, to = 0, width = 0}, face_id = 0, u = {image = {   
          object = 0, slice = {x = 0, y = 0, width = 0, height = 0},             
          image_id = 0}, comp = {object = 0}, stretch = {object = 0}},           
      position = {charpos = 0, bytepos = 0}, current = {pos = {charpos = 0,      
          bytepos = 0}, overlay_string_index = 0, string_pos = {charpos = 0,     
          bytepos = 0}, dpvec_index = 0}, from_overlay = 0,                      
      area = LEFT_MARGIN_AREA, method = GET_FROM_BUFFER, multibyte_p = 0,        
      string_from_display_prop_p = 0, display_ellipsis_p = 0,                    
      avoid_cursor_p = 0, voffset = 0, space_width = 0, font_height = 0}, {      
      string = 0, string_nchars = 0, end_charpos = 0, stop_charpos = 0,          
      cmp_it = {stop_pos = 0, id = 0, ch = 0, lookback = 0, nglyphs = 0,         
        nchars = 0, nbytes = 0, from = 0, to = 0, width = 0}, face_id = 0, u = { 
        image = {object = 0, slice = {x = 0, y = 0, width = 0, height = 0},      
          image_id = 11677409}, comp = {object = 0}, stretch = {object = 0}},    
      position = {charpos = 0, bytepos = 0}, current = {pos = {charpos = 0,      
          bytepos = 0}, overlay_string_index = 0, string_pos = {charpos = 0,     
          bytepos = 0}, dpvec_index = 0}, from_overlay = 0,                      
      area = LEFT_MARGIN_AREA, method = GET_FROM_BUFFER, multibyte_p = 0,        
      string_from_display_prop_p = 0, display_ellipsis_p = 0,                    
      avoid_cursor_p = 0, voffset = 0, space_width = 0, font_height = 0}, {      
---Type <return> to continue, or q <return> to quit---                           
      string = 0, string_nchars = 0, end_charpos = 0, stop_charpos = 0,          
      cmp_it = {stop_pos = 0, id = 0, ch = 0, lookback = 0, nglyphs = 0,         
        nchars = 0, nbytes = 0, from = 0, to = 0, width = 0}, face_id = 0, u = { 
        image = {object = 0, slice = {x = 0, y = 0, width = 0, height = 0},      
          image_id = 0}, comp = {object = 0}, stretch = {object = 0}},           
      position = {charpos = 0, bytepos = 0}, current = {pos = {charpos = 0,      
          bytepos = 0}, overlay_string_index = 0, string_pos = {charpos = 0,     
          bytepos = 0}, dpvec_index = 0}, from_overlay = 0,                      
      area = LEFT_MARGIN_AREA, method = GET_FROM_BUFFER, multibyte_p = 0,        
      string_from_display_prop_p = 0, display_ellipsis_p = 0,                    
      avoid_cursor_p = 0, voffset = 0, space_width = 0, font_height = 0}, {      
      string = 0, string_nchars = 0, end_charpos = 0, stop_charpos = 0,          
      cmp_it = {stop_pos = 0, id = 0, ch = 0, lookback = 0, nglyphs = 0,         
        nchars = 0, nbytes = 0, from = 0, to = 0, width = 0}, face_id = 0, u = { 
        image = {object = 0, slice = {x = 0, y = 0, width = 0, height = 0},      
          image_id = 0}, comp = {object = 0}, stretch = {object = 0}},           
      position = {charpos = 0, bytepos = 0}, current = {pos = {charpos = 0,      
          bytepos = 0}, overlay_string_index = 0, string_pos = {charpos = 0,     
          bytepos = 0}, dpvec_index = 0}, from_overlay = 0,                      
      area = LEFT_MARGIN_AREA, method = GET_FROM_BUFFER, multibyte_p = 0,        
      string_from_display_prop_p = 0, display_ellipsis_p = 0,                    
      avoid_cursor_p = 0, voffset = 0, space_width = 0, font_height = 0}},       
  sp = 0, selective = 0, what = IT_CHARACTER, face_id = 0,                       
  selective_display_ellipsis_p = 0, ctl_arrow_p = 0, face_box_p = 0,             
  start_of_box_run_p = 0, end_of_box_run_p = 0,                                  
  overlay_strings_at_end_processed_p = 0, ignore_overlay_strings_at_pos_p = 0,   
  glyph_not_available_p = 0, starts_in_middle_of_char_p = 0,                     
  face_before_selective_p = 0, constrain_row_ascent_descent_p = 0,               
  line_wrap = TRUNCATE, base_face_id = 0, c = 0, len = 0, cmp_it = {             
    stop_pos = 0, id = 0, ch = 0, lookback = 0, nglyphs = 0, nchars = 0,         
---Type <return> to continue, or q <return> to quit---                           
    nbytes = 0, from = 0, to = 0, width = 0}, char_to_display = 0, image_id = 0, 
  slice = {x = 0, y = 0, width = 0, height = 0}, space_width = 0, voffset = 0,   
  tab_width = 0, font_height = 11677505, object = 12038658, position = {         
    charpos = 0, bytepos = 0}, truncation_pixel_width = 0,                       
  continuation_pixel_width = 0, first_visible_x = 0, last_visible_x = 12042033,  
  last_visible_y = 0, extra_line_spacing = 0, max_extra_line_spacing = 0,        
  override_ascent = 0, override_descent = 0, override_boff = 0, glyph_row = 0x0, 
  area = LEFT_MARGIN_AREA, nglyphs = 1, pixel_width = 13901429, ascent = 0,      
  descent = 13901429, max_ascent = 0, max_descent = 11677505, phys_ascent = 0,   
  phys_descent = 1760034256, max_phys_ascent = 32767,                            
  max_phys_descent = 5963182, current_x = 0, continuation_lines_width = 0,       
  current_y = 0, first_vpos = 13901429, vpos = 0, hpos = 36714434,               
  left_user_fringe_bitmap = 1, right_user_fringe_bitmap = 0,                     
  left_user_fringe_face_id = 504322, right_user_fringe_face_id = 0}              
        current_matrix_up_to_date_p = 0                                          
        used_current_matrix_p = 0                                                
        buffer_unchanged_p = 0                                                   
        temp_scroll_step = 0                                                     
        count = 4                                                                
        rc = 11783090                                                            
        centering_position = -1                                                  
        last_line_misfit = 0                                                     
        beg_unchanged = 191                                                      
        end_unchanged = 0                                                        
#3  0x0000000000448491 in redisplay_window_0 (window=43752452) at xdisp.c:12240  
No locals.                                                                       
#4  0x00000000005c97cc in internal_condition_case_1 (                            
    bfun=0x448455 <redisplay_window_0>, arg=43752452, handlers=12035877,         
    hfun=0x44842a <redisplay_window_error>) at eval.c:1559                       
        val = 0                                                                  
---Type <return> to continue, or q <return> to quit---                           
        c = {tag = 11677409, val = 11677409, next = 0x7fff68e819a0, gcpro = 0x0, 
  jmp = {{__jmpbuf = {128, 5511773701653979467, 4261088, 140734953431312, 0, 0,  
        5511773610299941195, -5511542193504722613}, __mask_was_saved = 0,        
      __saved_mask = {__val = {43752452, 11677409, 17191546593, 11785617,        
          6400000, 0, 0, 0, 11677409, 43752448, 4460194, 11783090, 43752448,     
          43199908, 21480779403, 4294967296}}}}, backlist = 0x0,                 
  handlerlist = 0x7fff68e81ab0, lisp_eval_depth = 0, pdlcount = 4,               
  poll_suppress_count = 1, interrupt_input_blocked = 0, byte_stack = 0x0}        
        h = {handler = 12035877, var = 11677409, chosen_clause = 12035861,       
  tag = 0x7fff68e7ff00, next = 0x7fff68e81ab0}                                   
#5  0x000000000044840b in redisplay_windows (window=43752452) at xdisp.c:12219   
        w = (struct window *) 0x29b9c00                                          
#6  0x0000000000447589 in redisplay_internal (preserve_echo_area=0)              
    at xdisp.c:11795                                                             
        f = (struct frame *) 0x29b9790                                           
        tail = 17421957                                                          
        frame = 43751316                                                         
        w = (struct window *) 0x29b99e0                                          
        f = (struct frame *) 0x29b9790                                           
        pause = 0                                                                
        must_finish = 1                                                          
        tlbufpos = {charpos = 1, bytepos = 1}                                    
        tlendpos = {charpos = 0, bytepos = 0}                                    
        number_of_visible_frames = 2                                             
        count = 2                                                                
        count1 = 4                                                               
        sf = (struct frame *) 0x29b9790                                          
        polling_stopped_here = 0                                                 
        old_frame = 43751316                                                     
        consider_all_windows_p = 1                                               
---Type <return> to continue, or q <return> to quit---                           
#7  0x0000000000445427 in redisplay () at xdisp.c:11001                          
No locals.                                                                       
#8  0x000000000052d241 in read_char (commandflag=1, nmaps=2,                     
    maps=0x7fff68e812a0, prev_event=11677409, used_mouse_menu=0x7fff68e81668,    
    end_time=0x0) at keyboard.c:3058                                             
        c = 11677409                                                             
        count = 0                                                                
        jmpcount = 2                                                             
        local_getcjmp = {{__jmpbuf = {6669888, 5511773701180023115, 4261088,     
      140734953431312, 0, 0, 5511773702102769995, -5511542212346584757},         
    __mask_was_saved = 0, __saved_mask = {__val = {5997980, 0, 11677409,         
        11938593, 11677409, 140734953427136, 11933402, 11933402, 11933402,       
        140734953427248, 17085653, 6055006592, 11717584, 11938593, 11677409,     
        140734953427328}}}}                                                      
        save_jump = {{__jmpbuf = {0, 0, 0, 0, 0, 0, 0, 0}, __mask_was_saved = 0, 
    __saved_mask = {__val = {0 <repeats 16 times>}}}}                            
        key_already_recorded = 0                                                 
        tem = 14175313                                                           
        save = 11677409                                                          
        previous_echo_area_message = 11677409                                    
        also_record = 11677409                                                   
        reread = 0                                                               
        gcpro1 = {next = 0x7fff68e81180, var = 0x29b9794, nvars = 11677409}      
        gcpro2 = {next = 0xb62b21, var = 0xb22ee1, nvars = 0}                    
        polling_stopped_here = 0                                                 
        orig_kboard = (struct kboard *) 0x29a5150                                
#9  0x0000000000538e8e in read_key_sequence (keybuf=0x7fff68e81810, bufsize=30,  
    prompt=11677409, dont_downcase_last=0, can_return_switch_frame=1,            
    fix_current_buffer=1) at keyboard.c:9340                                     
        interrupted_kboard = (KBOARD *) 0x29a5150                                
---Type <return> to continue, or q <return> to quit---                           
        interrupted_frame = (struct frame *) 0x29b9790                           
        key = 40428656                                                           
        used_mouse_menu = 0                                                      
        echo_local_start = 0                                                     
        last_real_key_start = 0                                                  
        keys_local_start = 0                                                     
        local_first_binding = 0                                                  
        from_string = 11677409                                                   
        count = 2                                                                
        t = 0                                                                    
        echo_start = 0                                                           
        keys_start = 0                                                           
        nmaps = 2                                                                
        nmaps_allocated = 2                                                      
        defs = (Lisp_Object * volatile) 0x7fff68e81280                           
        submaps = (Lisp_Object * volatile) 0x7fff68e812a0                        
        orig_local_map = 17425205                                                
        orig_keymap = 11677409                                                   
        localized_local_map = 0                                                  
        first_binding = 0                                                        
        first_unbound = 31                                                       
        mock_input = 0                                                           
        fkey = {parent = 17392741, map = 17392741, start = 0, end = 0}           
        keytran = {parent = 11669269, map = 11669269, start = 0, end = 0}        
        indec = {parent = 17392725, map = 17392725, start = 0, end = 0}          
        shift_translated = 0                                                     
        delayed_switch_frame = 11677409                                          
        original_uppercase = 140734953428512                                     
        original_uppercase_position = -1                                         
        dummyflag = 0                                                            
---Type <return> to continue, or q <return> to quit---                           
        starting_buffer = (struct buffer *) 0xb2cbd0                             
        fake_prefixed_keys = 11677409                                            
        gcpro1 = {next = 0x0, var = 0x0, nvars = 0}                              
#10 0x00000000005293cf in command_loop_1 () at keyboard.c:1621                   
        cmd = 12036865                                                           
        lose = 0                                                                 
        nonundocount = 0                                                         
        keybuf = {17085653, 12258229, 0, 139837170870384, 27, 12951045,          
  2822930839, 139837168873558, 44108294, 23, 139837099473124, 140734953429120,   
  140734953429544, 139837099477840, 0, 140734953429296, 140734953428784, 0,      
  139837099528552, 4212880, 4294967296, 4294968231, 16134272, 139837171049304,   
  140734953429600, 2822930839, 140734953429520, 0, 140734953429544,              
  139837168874142}                                                               
        i = 1                                                                    
        prev_modiff = 11                                                         
        prev_buffer = (struct buffer *) 0xb2cbd0                                 
        already_adjusted = 0                                                     
#11 0x00000000005c9642 in internal_condition_case (                              
    bfun=0x529035 <command_loop_1>, handlers=11764577, hfun=0x52897a <cmd_error>)
    at eval.c:1511                                                               
        val = 12258229                                                           
        c = {tag = 11677409, val = 11677409, next = 0x7fff68e81b20, gcpro = 0x0, 
  jmp = {{__jmpbuf = {6669888, 5511773701431681355, 4261088, 140734953431312, 0, 
        0, 5511773701410709835, -5511542193588477621}, __mask_was_saved = 0,     
      __saved_mask = {__val = {323677304120, 139837099500280, 139837170900992,   
          4261088, 4294967295, 476741369856, 9035904, 4261088, 140734953431312,  
          0, 0, 0, 139837168891050, 139835545223169, 0, 140734953431312}}}},     
  backlist = 0x0, handlerlist = 0x0, lisp_eval_depth = 0, pdlcount = 2,          
  poll_suppress_count = 1, interrupt_input_blocked = 0, byte_stack = 0x0}        
        h = {handler = 11764577, var = 11677409, chosen_clause = 12477232,       
---Type <return> to continue, or q <return> to quit---                           
  tag = 0x7fff68e819a0, next = 0x0}                                              
#12 0x0000000000528d54 in command_loop_2 () at keyboard.c:1338                   
        val = -1099511627776
#13 0x00000000005c901e in internal_catch (tag=11745873,
    func=0x528d3a <command_loop_2>, arg=11677409) at eval.c:1247
        c = {tag = 11745873, val = 11677409, next = 0x0, gcpro = 0x0, jmp = {{
      __jmpbuf = {6669888, 5511773701521858891, 4261088, 140734953431312, 0, 0,
        5511773701494595915, -5511542193734098613}, __mask_was_saved = 0,
      __saved_mask = {__val = {5964914, 384, 11677409, 12097665, 11677409,
          8589934936, 12088730, 12088730, 12088730, 140734953430016, 5963358,
          4306842072, 11717584, 12088730, 12097665, 140734953430096}}}},
  backlist = 0x0, handlerlist = 0x0, lisp_eval_depth = 0, pdlcount = 2,
  poll_suppress_count = 1, interrupt_input_blocked = 0, byte_stack = 0x0}
#14 0x0000000000528d14 in command_loop () at keyboard.c:1317
No locals.
#15 0x00000000005284c0 in recursive_edit_1 () at keyboard.c:942
        count = 1
        val = 11677409
#16 0x0000000000528663 in Frecursive_edit () at keyboard.c:1004
        count = 0
        buffer = 11677409
#17 0x0000000000526abd in main (argc=2, argv=0x7fff68e82118) at emacs.c:1777
        dummy = 4249513
        stack_bottom_variable = 0 '\0'
        do_initial_setlocale = 1
        skip_args = 0
        rlim = {rlim_cur = 8720000, rlim_max = 18446744073709551615}
        no_loadup = 0
        junk = 0x0
        dname_arg = 0x0

-- 
Oscar