unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#891: 23.0.60; Emacs aborts after buffer-swap-text
@ 2008-09-04 22:33 Stephen Berman
  2008-09-04 23:06 ` Jason Rumney
  2008-09-05  3:52 ` Stefan Monnier
  0 siblings, 2 replies; 8+ messages in thread
From: Stephen Berman @ 2008-09-04 22:33 UTC (permalink / raw)
  To: emacs-pretest-bug


Please write in English if possible, because the Emacs maintainers
usually do not have translators to read other languages for them.

Your bug report will be posted to the emacs-pretest-bug@gnu.org mailing list.

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug:

1. emacs -Q
2. Load the library tabbar.el, available from
http://emhacks.cvs.sourceforge.net/emhacks/emhacks/tabbar.el?revision=1.69&view=markup
3. M-x tabbar-mode
4. M-: (buffer-swap-text (get-buffer "*Messages*"))
5. C-c C-right (tabbar-forward)
   ==> Emacs aborts

The full backtrace is below.  According to the Lisp backtrace, the abort
occurs during or after switch-to-buffer.  Yet typing C-x b after step 4
above does not make Emacs abort.  Moreover, when I directly call any of
the tabbar.el functions listed in the backtrace and step through them
with edebug, this also fails to make Emacs abort.  Yet the above recipe
is reliably reproducible.  

(Since the abort occurs in unshow_buffer, my guess, based on a comment
at line 8314 of xdisp.c, is that switch-to-buffer needs to have
something like the code in with_echo_area_buffer that changes w->pointm.
I guess this would go after the call to Fset_buffer in switch-to-buffer,
but I don't know how to write the code.)

(gdb) r -Q -fn "Dejavu Sans Mono-10"
`/Users/steve/lib/emacs-cvs-gtk/src/emacs' has changed; re-reading symbols.
Breakpoint 1 at 0x8116c06: file /home/steve/cvsroot/emacs/src/emacs.c, line 417.
Breakpoint 2 at 0x8130f89: file /Users/steve/cvsroot/emacs/src/sysdep.c, line 1135.
Starting program: /Users/steve/lib/emacs-cvs-gtk/src/emacs -Q -fn "Dejavu Sans Mono-10"

Breakpoint 1, abort () at /home/steve/cvsroot/emacs/src/emacs.c:417
417       kill (getpid (), SIGABRT);
(gdb) bt full
#0  abort () at /home/steve/cvsroot/emacs/src/emacs.c:417
No locals.
#1  0x08096ebb in unshow_buffer (w=0x8c5a3b0)
    at /home/steve/cvsroot/emacs/src/window.c:1392
        buf = 139270356
#2  0x0809a158 in Fset_window_buffer (window=147170228, buffer=141881804,
    keep_margins=137857225) at /home/steve/cvsroot/emacs/src/window.c:3497
        tem = <value optimized out>
        w = (struct window *) 0x8c5a3b0
#3  0x08139c9b in switch_to_buffer_1 (buffer=141881804, norecord=137857225)
    at /home/steve/cvsroot/emacs/src/buffer.c:1766
        buf = 141881804
#4  0x081802c1 in Feval (form=147885501)
    at /Users/steve/cvsroot/emacs/src/eval.c:2378
        numargs = <value optimized out>
        argvals = {141881804, 137857225, 0, 148096029, -1080555584,
  -1080555720, -1080555776, 2}
        args_left = 137857225
        i = 2
        fun = <value optimized out>
        val = <value optimized out>
        original_fun = 138019601
        original_args = 147885469
        funcar = <value optimized out>
        backtrace = {
  next = 0xbf9807c0,
  function = 0xbf980748,
  args = 0xbf980710,
  nargs = 1,
  evalargs = 1 '\001',
  debug_on_exit = 0 '\0'
}
#5  0x0818056f in Fprogn (args=137857273)
    at /Users/steve/cvsroot/emacs/src/eval.c:449
        val = 137857225
#6  0x08180383 in Feval (form=147886349)
    at /Users/steve/cvsroot/emacs/src/eval.c:2322
        numargs = 137857273
        argvals = {148096829, 148320841, -1080555480, 135790656, -1080555456,
  -1080555576, -1080555680, 2}
        args_left = 147885965
---Type <return> to continue, or q <return> to quit---
        i = <value optimized out>
        fun = <value optimized out>
        val = <value optimized out>
        original_fun = 137996201
        original_args = 147885965
        funcar = <value optimized out>
        backtrace = {
  next = 0xbf9808a0,
  function = 0xbf9807d8,
  args = 0xbf9807d4,
  nargs = -1,
  evalargs = 0 '\0',
  debug_on_exit = 0 '\0'
}
#7  0x0818056f in Fprogn (args=137857273)
    at /Users/steve/cvsroot/emacs/src/eval.c:449
        val = 137857225
#8  0x08182a8f in Flet (args=147886389)
    at /Users/steve/cvsroot/emacs/src/eval.c:1089
        tem = 141881804
        elt = <value optimized out>
        varlist = <value optimized out>
#9  0x08180383 in Feval (form=147887125)
    at /Users/steve/cvsroot/emacs/src/eval.c:2322
        numargs = 137857273
        argvals = {208, 148290853, -1080555424, -1080555312, 148246920, 13,
  142318232, 5}
        args_left = 147886389
        i = <value optimized out>
        fun = <value optimized out>
        val = <value optimized out>
        original_fun = 137998577
        original_args = 147886389
        funcar = <value optimized out>
        backtrace = {
  next = 0xbf980968,
  function = 0xbf9808b8,
  args = 0xbf9808b4,
  nargs = -1,
  evalargs = 0 '\0',
  debug_on_exit = 0 '\0'
---Type <return> to continue, or q <return> to quit---
}
#10 0x0818056f in Fprogn (args=137857273)
    at /Users/steve/cvsroot/emacs/src/eval.c:449
        val = 137857225
#11 0x08180804 in funcall_lambda (fun=147884632, nargs=2,
    arg_vector=0xbf9809b4) at /Users/steve/cvsroot/emacs/src/eval.c:3224
        val = <value optimized out>
        syms_left = 137857225
        next = <value optimized out>
        i = 2
        optional = 0
        rest = 0
#12 0x08180b3f in Ffuncall (nargs=3, args=0xbf9809b0)
    at /Users/steve/cvsroot/emacs/src/eval.c:3101
        fun = 147884637
        original_fun = 142818729
        funcar = <value optimized out>
        numargs = 2
        val = <value optimized out>
        backtrace = {
  next = 0xbf980a00,
  function = 0xbf9809b0,
  args = 0xbf9809b4,
  nargs = 2,
  evalargs = 0 '\0',
  debug_on_exit = 0 '\0'
}
        internal_args = (Lisp_Object *) 0xbf9809b4
        i = <value optimized out>
#13 0x08180370 in Feval (form=148243701)
    at /Users/steve/cvsroot/emacs/src/eval.c:2348
        numargs = <value optimized out>
        argvals = {224, 148096029, 15, 136329824, 136329832, 14, 142318232,
  148135861}
        args_left = 137857225
        i = <value optimized out>
        fun = <value optimized out>
        val = <value optimized out>
        original_fun = 137998889
        original_args = 148243709
        funcar = <value optimized out>
---Type <return> to continue, or q <return> to quit---
        backtrace = {
  next = 0xbf980a90,
  function = 0xbf980a18,
  args = 0xbf9809b0,
  nargs = 3,
  evalargs = 1 '\001',
  debug_on_exit = 0 '\0'
}
#14 0x0818056f in Fprogn (args=137857273)
    at /Users/steve/cvsroot/emacs/src/eval.c:449
        val = 137857225
#15 0x08180383 in Feval (form=148290925)
    at /Users/steve/cvsroot/emacs/src/eval.c:2322
        numargs = 137857273
        argvals = {136329944, 148135861, 137998601, 148134112, 137499040, 0,
  -1080554944, 136329923}
        args_left = 148290933
        i = <value optimized out>
        fun = <value optimized out>
        val = <value optimized out>
        original_fun = 137996225
        original_args = 148290933
        funcar = <value optimized out>
        backtrace = {
  next = 0xbf980b10,
  function = 0xbf980aa8,
  args = 0xbf980aa4,
  nargs = -1,
  evalargs = 0 '\0',
  debug_on_exit = 0 '\0'
}
#16 0x08180383 in Feval (form=148290901)
    at /Users/steve/cvsroot/emacs/src/eval.c:2322
        numargs = 137857273
        argvals = {136329756, 142824729, 148243701, 148243757, 148243693,
  148096445, 138010225, 148096480}
        args_left = 148290909
        i = <value optimized out>
        fun = <value optimized out>
        val = <value optimized out>
        original_fun = 137996177
---Type <return> to continue, or q <return> to quit---
        original_args = 148290909
        funcar = <value optimized out>
        backtrace = {
  next = 0xbf980b90,
  function = 0xbf980b28,
  args = 0xbf980b24,
  nargs = -1,
  evalargs = 0 '\0',
  debug_on_exit = 0 '\0'
}
#17 0x08180130 in Feval (form=148243685)
    at /Users/steve/cvsroot/emacs/src/eval.c:2433
        numargs = <value optimized out>
        argvals = {137857225, 137969097, 5, 148300117, 148300269, 138229905,
  -1080554488, 135790656}
        args_left = <value optimized out>
        i = <value optimized out>
        fun = <value optimized out>
        val = <value optimized out>
        original_fun = 138020321
        original_args = 148243693
        funcar = <value optimized out>
        backtrace = {
  next = 0xbf980cb0,
  function = 0xbf980ba8,
  args = 0xbf980ba4,
  nargs = -1,
  evalargs = 1 '\001',
  debug_on_exit = 0 '\0'
}
#18 0x0818056f in Fprogn (args=137857273)
    at /Users/steve/cvsroot/emacs/src/eval.c:449
        val = 137857225
#19 0x08180804 in funcall_lambda (fun=148243888, nargs=2,
    arg_vector=0xbf980c20) at /Users/steve/cvsroot/emacs/src/eval.c:3224
        val = <value optimized out>
        syms_left = 137857225
        next = <value optimized out>
        i = 2
        optional = 1
        rest = 0
---Type <return> to continue, or q <return> to quit---
#20 0x08180920 in apply_lambda (fun=148243893, args=148300445, eval_flag=1)
    at /Users/steve/cvsroot/emacs/src/eval.c:3155
        args_left = 137857225
        arg_vector = (Lisp_Object *) 0x83788c9
        i = 2
        tem = 137857225
#21 0x0817ffd4 in Feval (form=148300437)
    at /Users/steve/cvsroot/emacs/src/eval.c:2435
        fun = 137857225
        val = <value optimized out>
        original_fun = 142868745
        original_args = 148300445
        funcar = 137857273
        backtrace = {
  next = 0xbf980d40,
  function = 0xbf980cc8,
  args = 0xbf980c20,
  nargs = 2,
  evalargs = 0 '\0',
  debug_on_exit = 0 '\0'
}
#22 0x0818056f in Fprogn (args=137857273)
    at /Users/steve/cvsroot/emacs/src/eval.c:449
        val = 137857225
#23 0x08180383 in Feval (form=148291021)
    at /Users/steve/cvsroot/emacs/src/eval.c:2322
        numargs = 137857273
        argvals = {139575457, 148291101, -1080554072, 135790656, -1080554048,
  -1080554168, 136329752, 2}
        args_left = 148291029
        i = <value optimized out>
        fun = <value optimized out>
        val = <value optimized out>
        original_fun = 137996225
        original_args = 148291029
        funcar = <value optimized out>
        backtrace = {
  next = 0xbf980dc0,
  function = 0xbf980d58,
  args = 0xbf980d54,
  nargs = -1,
---Type <return> to continue, or q <return> to quit---
  evalargs = 0 '\0',
  debug_on_exit = 0 '\0'
}
#24 0x08180383 in Feval (form=148290997)
    at /Users/steve/cvsroot/emacs/src/eval.c:2322
        numargs = 137857273
        argvals = {148300437, 136329756, -1080554024, 135799515, 148301381,
  -1080554032, -1080553992, 135792928}
        args_left = 148291005
        i = <value optimized out>
        fun = <value optimized out>
        val = <value optimized out>
        original_fun = 137996177
        original_args = 148291005
        funcar = <value optimized out>
        backtrace = {
  next = 0xbf980e40,
  function = 0xbf980dd8,
  args = 0xbf980dd4,
  nargs = -1,
  evalargs = 0 '\0',
  debug_on_exit = 0 '\0'
}
#25 0x08180130 in Feval (form=148301373)
    at /Users/steve/cvsroot/emacs/src/eval.c:2433
        numargs = <value optimized out>
        argvals = {137897993, 137900042, 3, 139270352, -1080553884, 2,
  137857249, 137897992}
        args_left = <value optimized out>
        i = <value optimized out>
        fun = <value optimized out>
        val = <value optimized out>
        original_fun = 138020321
        original_args = 148301381
        funcar = <value optimized out>
        backtrace = {
  next = 0xbf980f00,
  function = 0xbf980e58,
  args = 0xbf980e54,
  nargs = -1,
  evalargs = 1 '\001',
---Type <return> to continue, or q <return> to quit---
  debug_on_exit = 0 '\0'
}
#26 0x0818056f in Fprogn (args=137857273)
    at /Users/steve/cvsroot/emacs/src/eval.c:449
        val = 137857225
#27 0x08182c25 in FletX (args=148301365)
    at /Users/steve/cvsroot/emacs/src/eval.c:1033
        varlist = 137857225
        val = 137857225
        elt = 137969097
#28 0x08180383 in Feval (form=148301085)
    at /Users/steve/cvsroot/emacs/src/eval.c:2322
        numargs = 137857273
        argvals = {137012732, 4, 142318232, 4, 0, 0, 0, -1080553696}
        args_left = 148301365
        i = <value optimized out>
        fun = <value optimized out>
        val = <value optimized out>
        original_fun = 137998601
        original_args = 148301365
        funcar = <value optimized out>
        backtrace = {
  next = 0xbf981010,
  function = 0xbf980f18,
  args = 0xbf980f14,
  nargs = -1,
  evalargs = 0 '\0',
  debug_on_exit = 0 '\0'
}
#29 0x0818056f in Fprogn (args=137857273)
    at /Users/steve/cvsroot/emacs/src/eval.c:449
        val = 137857225
#30 0x08180804 in funcall_lambda (fun=148300480, nargs=0,
    arg_vector=0xbf980f90) at /Users/steve/cvsroot/emacs/src/eval.c:3224
        val = <value optimized out>
        syms_left = 137857225
        next = <value optimized out>
        i = 0
        optional = 1
        rest = 0
#31 0x08180920 in apply_lambda (fun=148300485, args=137857225, eval_flag=1)
---Type <return> to continue, or q <return> to quit---
    at /Users/steve/cvsroot/emacs/src/eval.c:3155
        args_left = 0
        arg_vector = (Lisp_Object *) 0x83788c9
        i = 0
        tem = 137857225
#32 0x0817ffd4 in Feval (form=148300653)
    at /Users/steve/cvsroot/emacs/src/eval.c:2435
        fun = 137857225
        val = <value optimized out>
        original_fun = 142869129
        original_args = 137857225
        funcar = 137857273
        backtrace = {
  next = 0xbf9810d8,
  function = 0xbf981028,
  args = 0xbf980f90,
  nargs = 0,
  evalargs = 0 '\0',
  debug_on_exit = 0 '\0'
}
#33 0x0818056f in Fprogn (args=137857273)
    at /Users/steve/cvsroot/emacs/src/eval.c:449
        val = 137857225
#34 0x08180804 in funcall_lambda (fun=148300664, nargs=0,
    arg_vector=0xbf981114) at /Users/steve/cvsroot/emacs/src/eval.c:3224
        val = <value optimized out>
        syms_left = 137857225
        next = <value optimized out>
        i = 0
        optional = 0
        rest = 138140528
#35 0x08180b3f in Ffuncall (nargs=1, args=0xbf981110)
    at /Users/steve/cvsroot/emacs/src/eval.c:3101
        fun = 148300669
        original_fun = 142869249
        funcar = <value optimized out>
        numargs = 0
        val = <value optimized out>
        backtrace = {
  next = 0xbf981278,
  function = 0xbf981110,
---Type <return> to continue, or q <return> to quit---
  args = 0xbf981114,
  nargs = 0,
  evalargs = 0 '\0',
  debug_on_exit = 0 '\0'
}
        internal_args = (Lisp_Object *) 0xbf981114
        i = <value optimized out>
#36 0x081824c9 in apply1 (fn=142869249, arg=137857225)
    at /Users/steve/cvsroot/emacs/src/eval.c:2785
        ret_ungc_val = 139270352
#37 0x0817cbb4 in Fcall_interactively (function=142869249,
    record_flag=137857225, keys=137895660)
    at /Users/steve/cvsroot/emacs/src/callint.c:389
        values = 0
        input = <value optimized out>
        args = <value optimized out>
        visargs = <value optimized out>
        specs = 137857225
        filter_specs = <value optimized out>
        teml = <value optimized out>
        up_event = <value optimized out>
        enable = 137857225
        next_event = <value optimized out>
        prefix_arg = 137857225
        string = <value optimized out>
        tem = <value optimized out>
        varies = <value optimized out>
        i = <value optimized out>
        j = <value optimized out>
        foo = <value optimized out>
        prompt1 = '\0' <repeats 41 times>, " ", '\0' <repeats 57 times>
        arg_from_tty = <value optimized out>
        key_count = 2
        record_then_fail = <value optimized out>
        save_this_command = 142869249
        save_last_command = 143064897
        save_this_original_command = 142869249
        save_real_this_command = 142869249
#38 0x08180d89 in Ffuncall (nargs=4, args=0xbf9812b0)
    at /Users/steve/cvsroot/emacs/src/eval.c:3050
        fun = <value optimized out>
---Type <return> to continue, or q <return> to quit---
        original_fun = <value optimized out>
        funcar = <value optimized out>
        numargs = 3
        val = <value optimized out>
        backtrace = {
  next = 0x0,
  function = 0xbf9812b0,
  args = 0xbf9812b4,
  nargs = 3,
  evalargs = 0 '\0',
  debug_on_exit = 0 '\0'
}
        internal_args = (Lisp_Object *) 0xbf9812b4
        i = <value optimized out>
#39 0x08180ed9 in call3 (fn=138021481, arg1=142869249, arg2=137857225,
    arg3=137857225) at /Users/steve/cvsroot/emacs/src/eval.c:2874
        ret_ungc_val = 139270352
#40 0x08127d6e in command_loop_1 ()
    at /home/steve/cvsroot/emacs/src/keyboard.c:1879
        cmd = <value optimized out>
        lose = <value optimized out>
        nonundocount = 0
        keybuf = {24, 143064993, 135408094, 141287205, 137857273, -1080552662,
  137857225, -1080552624, 137857225, -1080552600, 135408352, 141287205,
  -1080552662, 0, -1219210608, -1220685348, 0, 0, -1208525780, 0, -1080552632,
  -1080552784, 0, -1220673536, 137857225, 143204425, 0, 138380480, 138380464,
  -1080552600}
        i = <value optimized out>
        prev_modiff = 5
        prev_buffer = (struct buffer *) 0x84d18d0
        already_adjusted = 0
#41 0x0817f670 in internal_condition_case (bfun=0x8127a10 <command_loop_1>,
    handlers=137900465, hfun=0x8122a30 <cmd_error>)
    at /Users/steve/cvsroot/emacs/src/eval.c:1511
        val = <value optimized out>
        c = {
  tag = 137857225,
  val = 137857225,
  next = 0xbf981490,
  gcpro = 0x0,
  jmp = {{
---Type <return> to continue, or q <return> to quit---
      __jmpbuf = {0, 138380480, 138380464, -1080552360, -919785769,
        -689459784},
      __mask_was_saved = 0,
      __saved_mask = {
        __val = {1, 3075522548, 1617, 3075522548, 147162920, 147162920,
          3214414464, 3214414872, 3214414928, 3086452336, 134545314,
          2822930839, 0, 0, 3075473410, 3086398473, 134544643, 3214414864,
          3214415152, 4294967295, 3214415000, 135464899, 3214415152,
          3214414864, 128, 3074312832, 3075756688, 0, 4294967295, 3086450676,
          3086452336, 134523856}
      }
    }},
  backlist = 0x0,
  handlerlist = 0x0,
  lisp_eval_depth = 0,
  pdlcount = 2,
  poll_suppress_count = 1,
  interrupt_input_blocked = 0,
  byte_stack = 0x0
}
        h = {
  handler = 137900465,
  var = 137857225,
  chosen_clause = 137857273,
  tag = 0xbf98137c,
  next = 0x0
}
#42 0x08121f83 in command_loop_2 ()
    at /home/steve/cvsroot/emacs/src/keyboard.c:1338
        val = 139270352
#43 0x0817f74a in internal_catch (tag=137896441,
    func=0x8121f60 <command_loop_2>, arg=137857225)
    at /Users/steve/cvsroot/emacs/src/eval.c:1247
        c = {
  tag = 137896441,
  val = 137857225,
  next = 0x0,
  gcpro = 0x0,
  jmp = {{
      __jmpbuf = {0, 138380480, 138380464, -1080552104, -920465705,
        -689588808},
---Type <return> to continue, or q <return> to quit---
      __mask_was_saved = 0,
      __saved_mask = {
        __val = {0 <repeats 12 times>, 3074707950, 0, 0, 0, 0, 0, 0, 0,
          138096610, 138096040, 138096608, 3214415176, 135730245, 138096041,
          138096610, 137857225, 137883080, 0, 0, 137857249}
      }
    }},
  backlist = 0x0,
  handlerlist = 0x0,
  lisp_eval_depth = 0,
  pdlcount = 2,
  poll_suppress_count = 1,
  interrupt_input_blocked = 0,
  byte_stack = 0x0
}
#44 0x08122897 in command_loop ()
    at /home/steve/cvsroot/emacs/src/keyboard.c:1317
No locals.
#45 0x08122bfb in recursive_edit_1 ()
    at /home/steve/cvsroot/emacs/src/keyboard.c:942
        val = <value optimized out>
#46 0x08122d31 in Frecursive_edit ()
    at /home/steve/cvsroot/emacs/src/keyboard.c:1004
        buffer = 137857225
#47 0x081179dc in main (argc=4, argv=0xbf981964)
    at /home/steve/cvsroot/emacs/src/emacs.c:1693
        displayname = 0x0
        count_before = <value optimized out>
        dummy = -1080551208
        stack_bottom_variable = 8 '\b'
        do_initial_setlocale = 1
        skip_args = 0
        rlim = {
  rlim_cur = 8388608,
  rlim_max = 18446744073709551615
}
        no_loadup = 0
        junk = 0x0

Lisp Backtrace:
"switch-to-buffer" (0xbf980710)
---Type <return> to continue, or q <return> to quit---
"cond" (0xbf9807d4)
"let" (0xbf9808b4)
"tabbar-buffer-select-tab" (0xbf9809b4)
"funcall" (0xbf9809b0)
"progn" (0xbf980aa4)
"if" (0xbf980b24)
"when" (0xbf980ba4)
"tabbar-click-on-tab" (0xbf980c20)
"progn" (0xbf980d54)
"if" (0xbf980dd4)
"when" (0xbf980e54)
"let*" (0xbf980f14)
"tabbar-cycle" (0xbf980f90)
"tabbar-forward" (0xbf981114)
"call-interactively" (0xbf9812b4)


If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
    `bt full' and `xbacktrace'.
If you would like to further debug the crash, please read the file
/usr/local/share/emacs/23.0.60/etc/DEBUG for instructions.

In GNU Emacs 23.0.60.2 (i686-pc-linux-gnu, GTK+ Version 2.12.0) of 2008-09-04 on escher
Windowing system distributor `The X.Org Foundation', version 11.0.70200000
Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=local
  locale-coding-system: utf-8-unix
  default-enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  eldoc-mode: t
  shell-dirtrack-mode: t
  show-paren-mode: t
  recentf-mode: t
  diff-auto-refine-mode: t
  tabbar-mwheel-mode: t
  tabbar-mode: t
  display-time-mode: t
  tooltip-mode: t
  tool-bar-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  temp-buffer-resize-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
y M-x g u <return> y <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> J j y M-g <return> 
2 0 <return> SPC n n SPC n <select-window> <help-echo> 
<select-window> <help-echo> SPC n u SPC SPC q M-x c 
v s <tab> e x <tab> <return> <M-backspace> <M-backspace> 
<M-backspace> <M-backspace> <M-backspace> c v <tab> 
e m <tab> / <backspace> <return> <down> <up> <up> <down> 
<down> <down> <down> <down> e C-h e C-c j <return> 
M-u q M-x s h e <tab> <return> c d SPC . . <return> 
. . / . . / l i b <tab> <M-backspace> c v <tab> e m 
<tab> / C-x d SPC <backspace> ~ / c v <tab> e <tab> 
<return> s <down> <down> <return> <next> <next> <prior> 
<prior> <f11> <return> <down> <return> <next> <prior> 
C-x k <return> <f11> <return> C-c j p <return> c o 
n <tab> u <tab> <return> C-c j i <return> C-x b <return> 
m a k e <return> C-r e r r o C-g C-r w a r n C-w C-r 
C-r C-r C-g <down-mouse-1> <mouse-1> C-x d <return> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> i <help-echo> <down-mouse-1> <mouse-1> 
g g d x y e s <return> <help-echo> C-x C-f ~ / C-g 
M-x e d <return> s i <tab> t a b b <tab> <return> <S-left> 
<down-mouse-1> <mouse-1> M-x r e p o <tab> r <tab> 
<return>

Recent messages:
Partially completed
Completing file name...
Partially completed
Ido mode enabled [2 times]
Quit [2 times]
Mark set
1 of 1 deletions
1 deletion done
Quit
Making completion list...






^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#891: 23.0.60; Emacs aborts after buffer-swap-text
  2008-09-04 22:33 bug#891: 23.0.60; Emacs aborts after buffer-swap-text Stephen Berman
@ 2008-09-04 23:06 ` Jason Rumney
  2008-09-04 23:15   ` Processed (with 1 errors): " Emacs bug Tracking System
  2008-09-05  8:32   ` Stephen Berman
  2008-09-05  3:52 ` Stefan Monnier
  1 sibling, 2 replies; 8+ messages in thread
From: Jason Rumney @ 2008-09-04 23:06 UTC (permalink / raw)
  To: Stephen Berman, 891

merge 891 716
reassign 716 emacs
reassign 805 emacs
thanks

Stephen Berman wrote:
> 1. emacs -Q
> 2. Load the library tabbar.el, available from
> http://emhacks.cvs.sourceforge.net/emhacks/emhacks/tabbar.el?revision=1.69&view=markup
> 3. M-x tabbar-mode
> 4. M-: (buffer-swap-text (get-buffer "*Messages*"))
> 5. C-c C-right (tabbar-forward)
>    ==> Emacs aborts
>   

This seems to be the same bug as has been happening with tar-mode on 
Windows since tar-mode was changed to use buffer-swap-text. So the 
underlying bug is not platform specific after all. Do you also get 
crashes when opening tar files in Emacs?

> The full backtrace is below.  According to the Lisp backtrace, the abort
> occurs during or after switch-to-buffer.  Yet typing C-x b after step 4
> above does not make Emacs abort.  Moreover, when I directly call any of
> the tabbar.el functions listed in the backtrace and step through them
> with edebug, this also fails to make Emacs abort.  Yet the above recipe
> is reliably reproducible.  
>
> (Since the abort occurs in unshow_buffer, my guess, based on a comment
> at line 8314 of xdisp.c, is that switch-to-buffer needs to have
> something like the code in with_echo_area_buffer that changes w->pointm.
> I guess this would go after the call to Fset_buffer in switch-to-buffer,
> but I don't know how to write the code.)
>   

Can this be done in Fbuffer_swap_text, rather than expecting other code 
to clean up after the fact? Some of the crashes I've seen while 
debugging this have not involved switch-to-buffer, so there are probably 
many other locations where this clean up code needs to go if it can't be 
done in Fbuffer_swap_text for some reason.







^ permalink raw reply	[flat|nested] 8+ messages in thread

* Processed (with 1 errors): Re: bug#891: 23.0.60; Emacs aborts after buffer-swap-text
  2008-09-04 23:06 ` Jason Rumney
@ 2008-09-04 23:15   ` Emacs bug Tracking System
  2008-09-05  8:32   ` Stephen Berman
  1 sibling, 0 replies; 8+ messages in thread
From: Emacs bug Tracking System @ 2008-09-04 23:15 UTC (permalink / raw)
  To: Jason Rumney; +Cc: Emacs Bugs, w32 #716 #805

Processing commands for control@emacsbugs.donarmstrong.com:

> merge 891 716
bug#716: 23.0.60; opening tgz file causes emacs crash
bug#891: 23.0.60; Emacs aborts after buffer-swap-text
Mismatch - only bugs in same state can be merged:
Values for `package' don't match:
 #716 has `emacs,w32';
 #891 has `emacs'

> reassign 716 emacs
bug#716: 23.0.60; opening tgz file causes emacs crash
Warning: Unknown package 'w32'
bug#805: Emacs crashes on Windows when visiting .tar.gz files
Warning: Unknown package 'w32'
bug reassigned from package `emacs,w32' to `emacs'.

> reassign 805 emacs
bug#805: Emacs crashes on Windows when visiting .tar.gz files
bug#716: 23.0.60; opening tgz file causes emacs crash
bug reassigned from package `emacs' to `emacs'.

> thanks
Stopping processing here.

Please contact me if you need assistance.

Don Armstrong
(administrator, Emacs bugs database)





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#891: 23.0.60; Emacs aborts after buffer-swap-text
  2008-09-04 22:33 bug#891: 23.0.60; Emacs aborts after buffer-swap-text Stephen Berman
  2008-09-04 23:06 ` Jason Rumney
@ 2008-09-05  3:52 ` Stefan Monnier
  2008-09-05  8:32   ` Stephen Berman
  1 sibling, 1 reply; 8+ messages in thread
From: Stefan Monnier @ 2008-09-05  3:52 UTC (permalink / raw)
  To: Stephen Berman; +Cc: emacs-pretest-bug, 891

> 1. emacs -Q
> 2. Load the library tabbar.el, available from
> http://emhacks.cvs.sourceforge.net/emhacks/emhacks/tabbar.el?revision=1.69&view=markup
> 3. M-x tabbar-mode
> 4. M-: (buffer-swap-text (get-buffer "*Messages*"))
> 5. C-c C-right (tabbar-forward)
>    ==> Emacs aborts

> The full backtrace is below.  According to the Lisp backtrace, the abort
> occurs during or after switch-to-buffer.  Yet typing C-x b after step 4
> above does not make Emacs abort.  Moreover, when I directly call any of
> the tabbar.el functions listed in the backtrace and step through them
> with edebug, this also fails to make Emacs abort.  Yet the above recipe
> is reliably reproducible.  

> (Since the abort occurs in unshow_buffer, my guess, based on a comment
> at line 8314 of xdisp.c, is that switch-to-buffer needs to have
> something like the code in with_echo_area_buffer that changes w->pointm.
> I guess this would go after the call to Fset_buffer in switch-to-buffer,
> but I don't know how to write the code.)

Does the patch below fix the crash you see?


        Stefan


=== modified file 'src/buffer.c'
--- src/buffer.c	2008-08-29 15:11:08 +0000
+++ src/buffer.c	2008-09-05 03:51:15 +0000
@@ -2250,6 +2250,27 @@
       if (m->buffer == current_buffer)
 	m->buffer = other_buffer;
   }
+  /* Some of the C code expects that w->buffer == w->pointm->buffer.
+     So since we just swapped the markers between the two buffers, we need
+     to undo the effect of this swap for window markers.  */
+  {
+    Lisp_Object w = Fselected_window (), ws = Qnil;
+    Lisp_Object buf1, buf2;
+    XSETBUFFER (buf1, current_buffer); XSETBUFFER (buf2, other_buffer);
+
+    while (NILP (Fmemq (w, ws)))
+      {
+	ws = Fcons (w, ws);
+	if ((EQ (XWINDOW (w)->buffer, buf1)
+	     || EQ (XWINDOW (w)->buffer, buf2))
+	    && MARKERP (XWINDOW (w)->pointm))
+	  Fset_marker (XWINDOW (w)->pointm,
+		       make_number (BUF_BEGV (XBUFFER (XWINDOW (w)->buffer))),
+		       XWINDOW (w)->buffer);
+	w = Fnext_window (w, Qt, Qt);
+      }
+  }
+
   if (current_buffer->text->intervals)
     (eassert (EQ (current_buffer->text->intervals->up.obj, buffer)),
      XSETBUFFER (current_buffer->text->intervals->up.obj, current_buffer));







^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#891: 23.0.60; Emacs aborts after buffer-swap-text
  2008-09-05  3:52 ` Stefan Monnier
@ 2008-09-05  8:32   ` Stephen Berman
  0 siblings, 0 replies; 8+ messages in thread
From: Stephen Berman @ 2008-09-05  8:32 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-pretest-bug, 891

On Thu, 04 Sep 2008 23:52:45 -0400 Stefan Monnier <monnier@iro.umontreal.ca> wrote:

>> 1. emacs -Q
>> 2. Load the library tabbar.el, available from
>> http://emhacks.cvs.sourceforge.net/emhacks/emhacks/tabbar.el?revision=1.69&view=markup
>> 3. M-x tabbar-mode
>> 4. M-: (buffer-swap-text (get-buffer "*Messages*"))
>> 5. C-c C-right (tabbar-forward)
>>    ==> Emacs aborts
>
>> The full backtrace is below.  According to the Lisp backtrace, the abort
>> occurs during or after switch-to-buffer.  Yet typing C-x b after step 4
>> above does not make Emacs abort.  Moreover, when I directly call any of
>> the tabbar.el functions listed in the backtrace and step through them
>> with edebug, this also fails to make Emacs abort.  Yet the above recipe
>> is reliably reproducible.  
>
>> (Since the abort occurs in unshow_buffer, my guess, based on a comment
>> at line 8314 of xdisp.c, is that switch-to-buffer needs to have
>> something like the code in with_echo_area_buffer that changes w->pointm.
>> I guess this would go after the call to Fset_buffer in switch-to-buffer,
>> but I don't know how to write the code.)
>
> Does the patch below fix the crash you see?

Yes; thanks!

Steve Berman






^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#891: 23.0.60; Emacs aborts after buffer-swap-text
  2008-09-04 23:06 ` Jason Rumney
  2008-09-04 23:15   ` Processed (with 1 errors): " Emacs bug Tracking System
@ 2008-09-05  8:32   ` Stephen Berman
  2008-09-05  9:57     ` Jason Rumney
  1 sibling, 1 reply; 8+ messages in thread
From: Stephen Berman @ 2008-09-05  8:32 UTC (permalink / raw)
  To: Jason Rumney; +Cc: 891

On Fri, 05 Sep 2008 07:06:57 +0800 Jason Rumney <jasonr@gnu.org> wrote:

> merge 891 716
> reassign 716 emacs
> reassign 805 emacs
> thanks
>
> Stephen Berman wrote:
>> 1. emacs -Q
>> 2. Load the library tabbar.el, available from
>> http://emhacks.cvs.sourceforge.net/emhacks/emhacks/tabbar.el?revision=1.69&view=markup
>> 3. M-x tabbar-mode
>> 4. M-: (buffer-swap-text (get-buffer "*Messages*"))
>> 5. C-c C-right (tabbar-forward)
>>    ==> Emacs aborts
>>   
>
> This seems to be the same bug as has been happening with tar-mode on Windows
> since tar-mode was changed to use buffer-swap-text. So the underlying bug is
> not platform specific after all. Do you also get crashes when opening tar
> files in Emacs?

No, opening a .tar, .tar.gz, or .tgz file works fine here (before
applying Stefan's patch).  I also could not reproduce the crash with
your recipe in the 716 thread.  So I guess there are still some platform
specific issues.

Steve Berman






^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#891: 23.0.60; Emacs aborts after buffer-swap-text
  2008-09-05  8:32   ` Stephen Berman
@ 2008-09-05  9:57     ` Jason Rumney
  2008-09-05 10:05       ` Processed: " Emacs bug Tracking System
  0 siblings, 1 reply; 8+ messages in thread
From: Jason Rumney @ 2008-09-05  9:57 UTC (permalink / raw)
  To: Stephen Berman; +Cc: 891

unmerge 891
thanks

Stephen Berman wrote:
> On Fri, 05 Sep 2008 07:06:57 +0800 Jason Rumney <jasonr@gnu.org> wrote:
>   
>> Stephen Berman wrote:
>>     
>>> 1. emacs -Q
>>> 2. Load the library tabbar.el, available from
>>> http://emhacks.cvs.sourceforge.net/emhacks/emhacks/tabbar.el?revision=1.69&view=markup
>>> 3. M-x tabbar-mode
>>> 4. M-: (buffer-swap-text (get-buffer "*Messages*"))
>>> 5. C-c C-right (tabbar-forward)
>>>    ==> Emacs aborts
>>>   
>>>       
>> This seems to be the same bug as has been happening with tar-mode on Windows
>> since tar-mode was changed to use buffer-swap-text. So the underlying bug is
>> not platform specific after all. Do you also get crashes when opening tar
>> files in Emacs?
>>     
>
> No, opening a .tar, .tar.gz, or .tgz file works fine here (before
> applying Stefan's patch).  I also could not reproduce the crash with
> your recipe in the 716 thread.  So I guess there are still some platform
> specific issues.
>   

Stefan's patch does not help with the tar-mode crashes, so I guess this 
is a different bug after all.







^ permalink raw reply	[flat|nested] 8+ messages in thread

* Processed: Re: bug#891: 23.0.60; Emacs aborts after buffer-swap-text
  2008-09-05  9:57     ` Jason Rumney
@ 2008-09-05 10:05       ` Emacs bug Tracking System
  0 siblings, 0 replies; 8+ messages in thread
From: Emacs bug Tracking System @ 2008-09-05 10:05 UTC (permalink / raw)
  To: Jason Rumney; +Cc: Emacs Bugs

Processing commands for control@emacsbugs.donarmstrong.com:

> unmerge 891
bug#891: 23.0.60; Emacs aborts after buffer-swap-text
bug#716: 23.0.60; opening tgz file causes emacs crash
bug#805: Emacs crashes on Windows when visiting .tar.gz files
Disconnected #891 from all other report(s).

> thanks
Stopping processing here.

Please contact me if you need assistance.

Don Armstrong
(administrator, Emacs bugs database)





^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2008-09-05 10:05 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-09-04 22:33 bug#891: 23.0.60; Emacs aborts after buffer-swap-text Stephen Berman
2008-09-04 23:06 ` Jason Rumney
2008-09-04 23:15   ` Processed (with 1 errors): " Emacs bug Tracking System
2008-09-05  8:32   ` Stephen Berman
2008-09-05  9:57     ` Jason Rumney
2008-09-05 10:05       ` Processed: " Emacs bug Tracking System
2008-09-05  3:52 ` Stefan Monnier
2008-09-05  8:32   ` Stephen Berman

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).