unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* infloop when removing character
@ 2003-08-04 21:08 Simon Josefsson
  2003-08-07  6:05 ` Richard Stallman
  0 siblings, 1 reply; 9+ messages in thread
From: Simon Josefsson @ 2003-08-04 21:08 UTC (permalink / raw)


I have seen this a few times now, the last time I removed a
parenthesis at the end of the line with backspace, I recall it hanging
in similar situations before.

I did 'cvs upd' but there were no changes in src/, so I believe my
emacs is fairly up to date.

Program received signal SIGTSTP, Stopped (user).
scan_newline (start=1086115847, start_byte=513066, limit=1, limit_byte=1,
    count=-525, allow_quit=0) at search.c:809
809                   while (--cursor != ceiling_addr && *cursor != '\n')
(gdb) n
814                       if (++count == 0)
(gdb)
809                   while (--cursor != ceiling_addr && *cursor != '\n')
(gdb)
814                       if (++count == 0)
(gdb)
809                   while (--cursor != ceiling_addr && *cursor != '\n')
(gdb)
814                       if (++count == 0)
(gdb)
809                   while (--cursor != ceiling_addr && *cursor != '\n')
(gdb)
814                       if (++count == 0)
(gdb)
809                   while (--cursor != ceiling_addr && *cursor != '\n')
(gdb)
814                       if (++count == 0)
(gdb)
809                   while (--cursor != ceiling_addr && *cursor != '\n')
(gdb)
814                       if (++count == 0)
(gdb)
809                   while (--cursor != ceiling_addr && *cursor != '\n')
(gdb)
814                       if (++count == 0)
(gdb)
809                   while (--cursor != ceiling_addr && *cursor != '\n')
(gdb)
814                       if (++count == 0)
(gdb)
809                   while (--cursor != ceiling_addr && *cursor != '\n')
(gdb)
814                       if (++count == 0)
(gdb)
809                   while (--cursor != ceiling_addr && *cursor != '\n')
(gdb) p cursor
$6 = (
    unsigned char *) 0x40bd3335 "\nnnimap: Quickly checking mailbox INBOX.gnu-prog-disc\nnnimap: Quickly checking mailbox INBOX.libtool\nnnimap: Quickly checking mailbox INBOX.sent-mail.2002.12\nnnimap: Quickly checking mailbox INBOX.sen"...
(gdb) p ceiling_addr
$7 = (unsigned char *) 0x40bcd007 ""
(gdb) p count
$8 = -516
(gdb) n
814                       if (++count == 0)
(gdb)
809                   while (--cursor != ceiling_addr && *cursor != '\n')
(gdb)
814                       if (++count == 0)
(gdb)
809                   while (--cursor != ceiling_addr && *cursor != '\n')
(gdb)
814                       if (++count == 0)
(gdb)
809                   while (--cursor != ceiling_addr && *cursor != '\n')
(gdb) c
Continuing.
 
Program received signal SIGTSTP, Stopped (user).
0x08140f15 in scan_newline (start=1086115847, start_byte=513066, limit=1,
    limit_byte=1, count=-9641, allow_quit=0) at search.c:809
809                   while (--cursor != ceiling_addr && *cursor != '\n')
(gdb) p count
$9 = -9641
(gdb) bt full
#0  0x08140f15 in scan_newline (start=1086115847, start_byte=513066, limit=1,
    limit_byte=1, count=-9641, allow_quit=0) at search.c:809
        direction = -1
        cursor = (
    unsigned char *) 0x40c4446c "% completed...\ngnus-agent-expire cleared download flag on article 4681 as the cached article file is missing.\ngnus-agent-expire detected a missing NOV entry.  Run gnus-agent-regenerate-group to restor"...
        base = (unsigned char *) 0x40c4a431 ""
        ceiling = 1086604396
        ceiling_addr = (unsigned char *) 0x40bcd007 ""
        old_immediate_quit = 0
#1  0x08096cdc in message_dolog (m=0x81a5be4 "", nbytes=-1073748704, nlflag=1,
    multibyte=0) at xdisp.c:6279
        this_bol = -1073748704
        this_bol_byte = -1073748689
        prev_bol = 513022
        prev_bol_byte = 513022
        dup = 137550656
        oldbuf = (struct buffer *) 0x9416958
        oldpoint = 674330184
        oldbegv = 674330204
        oldzv = 674330224
        old_windows_or_buffers_changed = 523342
---Type <return> to continue, or q <return> to quit---

        point_at_end = 1
        zv_at_end = 1
        old_deactivate_mark = 405673668
        tem = 137550656
        gcpro1 = {
  next = 0x0,
  var = 0x0,
  nvars = -1073748424
}
#2  0x080969b4 in message_log_maybe_newline () at xdisp.c:6146
No locals.
#3  0x0810bbf1 in cmd_error_internal (data=1500288016, context=0xbfffe5d0 "")
    at keyboard.c:1226
        stream = 139876064
        kill_emacs_p = 0
#4  0x0810ba7f in cmd_error (data=1500288016) at keyboard.c:1174
        old_level = 405673668
        old_length = 405673668
        macroerror = "\04Q\b\0\0\0\0\001\0\0\0\031`^@\0\0\0\0\214\345\377\277\0\345\377\277\0\0\0\0\0\0\377\277\357q\0@\e\eY@o\247\a\bhB"
#5  0x08163ab4 in internal_condition_case (bfun=0x810bde4 <command_loop_1>,
    handlers=405784756, hfun=0x810b9d8 <cmd_error>) at eval.c:1323
        val = 1086604396
---Type <return> to continue, or q <return> to quit---
        c = {
  tag = 405673668,
  val = 1500288016,
  next = 0xbfffe780,
  gcpro = 0x0,
  jmp = {{
      __jmpbuf = {0, 1, -1073747736, -1073748152, -1073748432, 135674529},
      __mask_was_saved = 0,
      __saved_mask = {
        __val = {1079928080, 139543144, 0, 0, 110932256, 3221219136,
          1073813208, 3221219016, 1079943696, 1079557216, 1078462232,
          1079671240, 0 <repeats 18 times>, 1073812652, 1073813208}
      }
    }},
  backlist = 0x0,
  handlerlist = 0x0,
  lisp_eval_depth = 0,
  pdlcount = 2,
  poll_suppress_count = 1,
  interrupt_input_blocked = 0,
  byte_stack = 0x0
}
        h = {
---Type <return> to continue, or q <return> to quit---
  handler = 405784756,
  var = 405673668,
  chosen_clause = 405673716,
  tag = 0xbfffe660,
  next = 0x0
}
#6  0x0810bcba in command_loop_2 () at keyboard.c:1292
        val = 1086604396
#7  0x081636a5 in internal_catch (tag=1086604396,
    func=0x810bc9c <command_loop_2>, arg=405673668) at eval.c:1094
        c = {
  tag = 405746020,
  val = 405673668,
  next = 0x0,
  gcpro = 0x0,
  jmp = {{
      __jmpbuf = {0, 1, -1073747736, -1073747864, -1073748112, 135673466},
      __mask_was_saved = 0,
      __saved_mask = {
        __val = {0, 139542136, 1079924840, 5, 429496729, 0, 1080614752,
          139543144, 139543144, 3221218984, 1079928080, 139543144, 0,
          3221219016, 1079943727, 139543144, 1079882577, 3221219016, 0,
          1074309576, 674330284, 0, 405919036, 3221219400, 135614975,
---Type <return> to continue, or q <return> to quit---
          405919036, 674330284, 405673668, 137303856, 1479460504, 405673668,
          674330284}
      }
    }},
  backlist = 0x0,
  handlerlist = 0x0,
  lisp_eval_depth = 0,
  pdlcount = 2,
  poll_suppress_count = 1,
  interrupt_input_blocked = 0,
  byte_stack = 0x0
}
#8  0x0810bc70 in command_loop () at keyboard.c:1271
No locals.
#9  0x0810b7b4 in recursive_edit_1 () at keyboard.c:987
        val = 0
#10 0x0810b8c4 in Frecursive_edit () at keyboard.c:1043
        buffer = 1086604396
#11 0x0810a225 in main (argc=3, argv=0xbfffeb84) at emacs.c:1666
        dummy = 1073812652
        stack_bottom_variable = -65 '\277'
        do_initial_setlocale = 1
        skip_args = 0
---Type <return> to continue, or q <return> to quit---
        rlim = {
  rlim_cur = 18446744073709551615,
  rlim_max = 18446744073709551615
}
        no_loadup = 0
        junk = 0x0
(gdb)
(gdb)

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

* Re: infloop when removing character
  2003-08-04 21:08 infloop when removing character Simon Josefsson
@ 2003-08-07  6:05 ` Richard Stallman
  2003-08-07 22:05   ` Simon Josefsson
  2003-08-14 22:35   ` Simon Josefsson
  0 siblings, 2 replies; 9+ messages in thread
From: Richard Stallman @ 2003-08-07  6:05 UTC (permalink / raw)
  Cc: emacs-devel

    809                   while (--cursor != ceiling_addr && *cursor != '\n')
    (gdb) n
    814                       if (++count == 0)

This loop increases count.

    (gdb) p count
    $8 = -516

Ok.

    Program received signal SIGTSTP, Stopped (user).
    0x08140f15 in scan_newline (start=1086115847, start_byte=513066, limit=1,
	limit_byte=1, count=-9641, allow_quit=0) at search.c:809
    809                   while (--cursor != ceiling_addr && *cursor != '\n')
    (gdb) p count
    $9 = -9641

Something made count smaller.  Apparently some other code did run.
Can you find out what happened?

Did the first call to scan_newline return and did it get called again?
Please try using the `finish' command as explained in etc/DEBUG.

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

* Re: infloop when removing character
  2003-08-07  6:05 ` Richard Stallman
@ 2003-08-07 22:05   ` Simon Josefsson
  2003-08-14 22:35   ` Simon Josefsson
  1 sibling, 0 replies; 9+ messages in thread
From: Simon Josefsson @ 2003-08-07 22:05 UTC (permalink / raw)
  Cc: emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     Program received signal SIGTSTP, Stopped (user).
>     0x08140f15 in scan_newline (start=1086115847, start_byte=513066, limit=1,
> 	limit_byte=1, count=-9641, allow_quit=0) at search.c:809
>     809                   while (--cursor != ceiling_addr && *cursor != '\n')
>     (gdb) p count
>     $9 = -9641
>
> Something made count smaller.  Apparently some other code did run.
> Can you find out what happened?

Yes, the next time it happens.  I hope to come up with a way to
reproduce it, it has happened maybe 5 times now.

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

* Re: infloop when removing character
  2003-08-07  6:05 ` Richard Stallman
  2003-08-07 22:05   ` Simon Josefsson
@ 2003-08-14 22:35   ` Simon Josefsson
  2003-08-14 23:46     ` Simon Josefsson
  2003-08-17  0:35     ` Richard Stallman
  1 sibling, 2 replies; 9+ messages in thread
From: Simon Josefsson @ 2003-08-14 22:35 UTC (permalink / raw)
  Cc: emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     809                   while (--cursor != ceiling_addr && *cursor != '\n')
>     (gdb) n
>     814                       if (++count == 0)
>
> This loop increases count.
>
>     (gdb) p count
>     $8 = -516
>
> Ok.
>
>     Program received signal SIGTSTP, Stopped (user).
>     0x08140f15 in scan_newline (start=1086115847, start_byte=513066, limit=1,
> 	limit_byte=1, count=-9641, allow_quit=0) at search.c:809
>     809                   while (--cursor != ceiling_addr && *cursor != '\n')
>     (gdb) p count
>     $9 = -9641
>
> Something made count smaller.  Apparently some other code did run.
> Can you find out what happened?
>
> Did the first call to scan_newline return and did it get called again?
> Please try using the `finish' command as explained in etc/DEBUG.

OK, it has happened again.  I noticed some text in the echo area:

Error in post-command hook: ...

I didn't catch the final part of it, and now Emacs doesn't redisplay
itself any more so I cannot read it.

It happened when I was composing a mail in Gnus (it occurred in
different situations before), and my post-command-hook there is (this
is from another session, but I believe it is the same in the hung
process too):

post-command-hook's value is 
(t flyspell-post-command-hook)
Local in buffer *wide reply to Richard Stallman*; global value is 
(tooltip-activate-mouse-motions-if-enabled global-font-lock-mode-buffers hl-line-highlight)

Below is the 'finish' gdb log.  The process is still running in case
someone wants me to debug it, although I cannot promise to keep it
around for very long.

Program received signal SIGTSTP, Stopped (user).
0x08140f17 in scan_newline (start=1086652423, start_byte=476717, limit=1,
    limit_byte=1, count=-6874, allow_quit=0) at search.c:809
809                   while (--cursor != ceiling_addr && *cursor != '\n')
(gdb) finish
Run till exit from #0  0x08140f17 in scan_newline (start=1086652423,
    start_byte=476717, limit=1, limit_byte=1, count=-6874, allow_quit=0)
    at search.c:809
message_dolog (m=0x81a5be4 "", nbytes=-1073753312, nlflag=1, multibyte=0)
    at xdisp.c:6281
6281                  del_range_both (BEG, BEG_BYTE, PT, PT_BYTE, 0);
Value returned is $10 = 1
(gdb) finish
Run till exit from #0  message_dolog (m=0x81a5be4 "", nbytes=-1073753312,
    nlflag=1, multibyte=0) at xdisp.c:6281
0x080969b4 in message_log_maybe_newline () at xdisp.c:6146
6146        message_dolog ("", 0, 1, 0);
(gdb) finish
Run till exit from #0  0x080969b4 in message_log_maybe_newline ()
    at xdisp.c:6146
cmd_error_internal (data=1519920912, context=0xbfffd3d0 "") at keyboard.c:1227
1227          bitch_at_user ();
(gdb) finish
Run till exit from #0  cmd_error_internal (data=1519920912,
    context=0xbfffd3d0 "") at keyboard.c:1227
cmd_error (data=1519920912) at keyboard.c:1178
1178      Vquit_flag = Qnil;
(gdb) finish
Run till exit from #0  cmd_error (data=1519920912) at keyboard.c:1178
internal_condition_case (bfun=0x810bde4 <command_loop_1>, handlers=405784756,
    hfun=0x810b9d8 <cmd_error>) at eval.c:1337
1337    }
Value returned is $11 = 0
(gdb) finish
Run till exit from #0  internal_condition_case (
    bfun=0x810bde4 <command_loop_1>, handlers=405784756,
    hfun=0x810b9d8 <cmd_error>) at eval.c:1337
0x0810bcba in command_loop_2 () at keyboard.c:1292
1292        val = internal_condition_case (command_loop_1, Qerror, cmd_error);
Value returned is $12 = 0
(gdb) finish
Run till exit from #0  0x0810bcba in command_loop_2 () at keyboard.c:1292

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

* Re: infloop when removing character
  2003-08-14 22:35   ` Simon Josefsson
@ 2003-08-14 23:46     ` Simon Josefsson
  2003-08-18  6:46       ` Miles Bader
  2003-08-17  0:35     ` Richard Stallman
  1 sibling, 1 reply; 9+ messages in thread
From: Simon Josefsson @ 2003-08-14 23:46 UTC (permalink / raw)
  Cc: emacs-devel

Simon Josefsson <jas@extundo.com> writes:

> Below is the 'finish' gdb log.  The process is still running in case
> someone wants me to debug it, although I cannot promise to keep it
> around for very long.

Interestingly, after an hour or so, it crashed.  The gdb is still
alive if someone wants more information.

...
(gdb) finish
Run till exit from #0  0x0810bcba in command_loop_2 () at keyboard.c:1292
 
Program received signal SIGSEGV, Segmentation fault.
0x405eff67 in mallopt () from /lib/libc.so.6
(gdb) bt full
#0  0x405eff67 in mallopt () from /lib/libc.so.6
No symbol table info available.
#1  0x405eee67 in free () from /lib/libc.so.6
No symbol table info available.
#2  0x0814f572 in emacs_blocked_free (ptr=0x10001000) at alloc.c:922
No locals.
#3  0x405eee21 in free () from /lib/libc.so.6
No symbol table info available.
#4  0x0814f32e in lisp_align_malloc (nbytes=1020, type=MEM_TYPE_CONS)
    at alloc.c:801
        base = (void *) 0xfffd400
        val = (void *) 0x10001000
        abase = (struct ablocks *) 0xfffd400
#5  0x08150423 in Fcons (car=536863736, cdr=536863736) at alloc.c:2342
        new = (struct cons_block *) 0x1fffe3f8
        val = 1610552288
#6  0x080b70f7 in window_list_1 (window=1229434704, minibuf=405673716,
    all_frames=405673716) at window.c:1810
        tail = 268424192
        list = 1610552288
#7  0x080b7169 in window_loop (type=GET_BUFFER_WINDOW, obj=1234211128, mini=1,
    frames=405673716) at window.c:1878
        window = 1229434704
---Type <return> to continue, or q <return> to quit---
        windows = 405673716
        best_window = 135532129
        frame_arg = 268424192
        f = (struct frame *) 0x10001000
        gcpro1 = {
  next = 0x9909138,
  var = 0x1,
  nvars = 1
}
#8  0x080b76d2 in Fget_buffer_window (buffer=268424192, frame=405673716)
    at window.c:2101
No locals.
#9  0x08096bd6 in message_dolog (m=0x81a5be4 "", nbytes=160469304, nlflag=1,
    multibyte=0) at xdisp.c:6311
        oldbuf = (struct buffer *) 0x8ecba58
        oldpoint = 137459272
        oldbegv = 137459292
        oldzv = 137459312
        old_windows_or_buffers_changed = 40071913
        point_at_end = 1
        zv_at_end = 1
        old_deactivate_mark = 405673668
        tem = 137459272
---Type <return> to continue, or q <return> to quit---
        gcpro1 = {
  next = 0x0,
  var = 0x0,
  nvars = -1073753032
}
#10 0x080969b4 in message_log_maybe_newline () at xdisp.c:6146
No locals.
#11 0x0810bbf1 in cmd_error_internal (data=1610552272, context=0xbfffd3d0 "")
    at keyboard.c:1226
        stream = 140015528
        kill_emacs_p = 0
#12 0x0810ba7f in cmd_error (data=1610552272) at keyboard.c:1174
        old_level = 405673668
        old_length = 405673668
        macroerror = '\0' <repeats 49 times>
#13 0x08163ab4 in internal_condition_case (bfun=0x810bde4 <command_loop_1>,
    handlers=405784756, hfun=0x810b9d8 <cmd_error>) at eval.c:1323
        val = 536863736
        c = {
  tag = 405673668,
  val = 1610552272,
  next = 0xbfffd580,
  gcpro = 0x0,
---Type <return> to continue, or q <return> to quit---
  jmp = {{
      __jmpbuf = {0, 1, -1073752344, -1073752760, -1073753040, 135674529},
      __mask_was_saved = 0,
      __saved_mask = {
        __val = {1080665552, 135879220, 335544320, 0, 110932256, 3221214528,
          1073819192, 0, 0, 1079570624, 1079521280, 0 <repeats 15 times>,
          1073818628, 8532, 1073819192, 3221214544, 1073782041, 1073819604}
      }
    }},
  backlist = 0x0,
  handlerlist = 0x0,
  lisp_eval_depth = 0,
  pdlcount = 2,
  poll_suppress_count = 1,
  interrupt_input_blocked = 0,
  byte_stack = 0x0
}
        h = {
  handler = 405784756,
  var = 405673668,
  chosen_clause = 405673716,
  tag = 0xbfffd460,
  next = 0x0
---Type <return> to continue, or q <return> to quit---
}
#14 0x0810bcba in command_loop_2 () at keyboard.c:1292
        val = 536863736
#15 0x081636a5 in internal_catch (tag=536863736,
    func=0x810bc9c <command_loop_2>, arg=405673668) at eval.c:1094
        c = {
  tag = 405746020,
  val = 405673668,
  next = 0x0,
  gcpro = 0x0,
  jmp = {{
      __jmpbuf = {0, 1, -1073752344, -1073752472, -1073752720, 135673466},
      __mask_was_saved = 0,
      __saved_mask = {
        __val = {1073824627, 905958520, 1080665552, 139681536, 139681536,
          3221214376, 135591282, 139681536, 1073824693, 139680464, 1079943561,
          0, 0, 0, 1079943561, 139680488, 50, 0, 0, 1074318392, 674330284, 0,
          405919036, 3221214792, 135614975, 405919036, 674330284, 405673668,
          137303856, 1479460504, 405673668, 674330284}
      }
    }},
  backlist = 0x0,
  handlerlist = 0x0,
---Type <return> to continue, or q <return> to quit---
  lisp_eval_depth = 0,
  pdlcount = 2,
  poll_suppress_count = 1,
  interrupt_input_blocked = 0,
  byte_stack = 0x0
}
#16 0x0810bc70 in command_loop () at keyboard.c:1271
No locals.
#17 0x0810b7b4 in recursive_edit_1 () at keyboard.c:987
        val = 0
#18 0x0810b8c4 in Frecursive_edit () at keyboard.c:1043
        buffer = 536863736
#19 0x0810a225 in main (argc=3, argv=0xbfffd984) at emacs.c:1666
        dummy = -1073752180
        stack_bottom_variable = 0 '\0'
        do_initial_setlocale = 1
        skip_args = 0
        rlim = {
  rlim_cur = 18446744073709551615,
  rlim_max = 18446744073709551615
}
        no_loadup = 0
        junk = 0x0
(gdb)

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

* Re: infloop when removing character
  2003-08-14 22:35   ` Simon Josefsson
  2003-08-14 23:46     ` Simon Josefsson
@ 2003-08-17  0:35     ` Richard Stallman
  1 sibling, 0 replies; 9+ messages in thread
From: Richard Stallman @ 2003-08-17  0:35 UTC (permalink / raw)
  Cc: emacs-devel

    OK, it has happened again.  I noticed some text in the echo area:

    Error in post-command hook: ...

This suggests to me that maybe there is a loop where the code that
handles an error gets another error.  You can see if this is happening
by putting a breakpoint at Fsignal, once you are in GDB after the loop
has started.

If it hits the breakpoint, please make C and Lisp backtraces, and try
to figure out what's causing error handling to get an error.

Here's another approach to try:

    0x0810bcba in command_loop_2 () at keyboard.c:1292
    1292        val = internal_condition_case (command_loop_1, Qerror, cmd_error);
    Value returned is $12 = 0
    (gdb) finish
    Run till exit from #0  0x0810bcba in command_loop_2 () at keyboard.c:1292

Since the call to command_loop_2 did not exit, I suggest you get
here again by calling `finish' repeatedly as before; then, once here,
don't call `finish' but instead start stepping and figure out what happens
after this point.

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

* Re: infloop when removing character
  2003-08-14 23:46     ` Simon Josefsson
@ 2003-08-18  6:46       ` Miles Bader
  2003-08-18 10:10         ` Simon Josefsson
  0 siblings, 1 reply; 9+ messages in thread
From: Miles Bader @ 2003-08-18  6:46 UTC (permalink / raw)
  Cc: emacs-devel

Simon Josefsson <jas@extundo.com> writes:
> Program received signal SIGSEGV, Segmentation fault.
> 0x405eff67 in mallopt () from /lib/libc.so.6
> (gdb) bt full
> #0  0x405eff67 in mallopt () from /lib/libc.so.6
> No symbol table info available.

Hmmm, I've seen this `infinite loop in mallopt' hang too, but it was on
one my personal `very hacked' branches of emacs, so I assumed it was my
bug.  So you're seeing this in vanilla CVS emacs?

I guess this is malloc heap corruption (and so a bitch to find).

-Miles
-- 
"1971 pickup truck; will trade for guns"

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

* Re: infloop when removing character
  2003-08-18  6:46       ` Miles Bader
@ 2003-08-18 10:10         ` Simon Josefsson
  2003-08-19  4:30           ` Miles Bader
  0 siblings, 1 reply; 9+ messages in thread
From: Simon Josefsson @ 2003-08-18 10:10 UTC (permalink / raw)
  Cc: rms, emacs-devel

Miles Bader <miles@lsi.nec.co.jp> writes:

> Simon Josefsson <jas@extundo.com> writes:
>> Program received signal SIGSEGV, Segmentation fault.
>> 0x405eff67 in mallopt () from /lib/libc.so.6
>> (gdb) bt full
>> #0  0x405eff67 in mallopt () from /lib/libc.so.6
>> No symbol table info available.
>
> Hmmm, I've seen this `infinite loop in mallopt' hang too, but it was on
> one my personal `very hacked' branches of emacs, so I assumed it was my
> bug.  So you're seeing this in vanilla CVS emacs?

Yes, I don't have any changes, not even elisp changes.

> I guess this is malloc heap corruption (and so a bitch to find).

Perhaps it is a result from a error-within-a-error like Richard
suggested.

Since the process has crashed now I'll have to wait for it to happen
again until I can test more ideas.

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

* Re: infloop when removing character
  2003-08-18 10:10         ` Simon Josefsson
@ 2003-08-19  4:30           ` Miles Bader
  0 siblings, 0 replies; 9+ messages in thread
From: Miles Bader @ 2003-08-19  4:30 UTC (permalink / raw)
  Cc: emacs-devel

Simon Josefsson <jas@extundo.com> writes:
> > Hmmm, I've seen this `infinite loop in mallopt' hang too, but it was on
> > one my personal `very hacked' branches of emacs, so I assumed it was my
> > bug.  So you're seeing this in vanilla CVS emacs?
> 
> Yes, I don't have any changes, not even elisp changes.
> 
> > I guess this is malloc heap corruption (and so a bitch to find).
> 
> Perhaps it is a result from a error-within-a-error like Richard
> suggested.

My hangs look like what Gerd's seeing, but I don't notice any errors
involved.

For me they always seem to be in mallopt called from malloc called from
the regex code, called from within emacs' font-handling code; I've
appended an example backtrace.

> Since the process has crashed now I'll have to wait for it to happen
> again until I can test more ideas.

Heh, it seems to be happening more and more often for me, so I usually
don't have long to wait.  :-(

I'll grovel at this a bit more, but I'm not sure there's much I can
find out at this stage.  I'll try re-compiling using the debugging
options Gerd used...

-Miles


   Program received signal SIGTSTP, Stopped (user).
   0x405e310f in mallopt () from /lib/libc.so.6
   (gdb) ba
   #0  0x405e310f in mallopt () from /lib/libc.so.6
   #1  0x405e3d10 in mallopt () from /lib/libc.so.6
   #2  0x0815b19e in emacs_blocked_malloc (size=512)
       at /usr/local/src/emacs-tiling/src/alloc.c:966
   #3  0x405e1c68 in malloc () from /lib/libc.so.6
   #4  0x0815aacc in xmalloc (size=512)
       at /usr/local/src/emacs-tiling/src/alloc.c:523
   #5  0x08150d2f in regex_compile (pattern=0x853e948 "-cdac$", size=6,
       syntax=3408388, bufp=0x82eb20c)
       at /usr/local/src/emacs-tiling/src/regex.c:2466
   #6  0x08159db0 in re_compile_pattern (pattern=0x853e948 "-cdac$", length=6,
       bufp=0x21) at /usr/local/src/emacs-tiling/src/regex.c:5994
   #7  0x0814ab6d in compile_pattern_1 (cp=0x82eb204, pattern=945015340,
       translate=1211100160, regp=0x0, posix=0, multibyte=0)
       at /usr/local/src/emacs-tiling/src/search.c:163
   #8  0x0814acea in compile_pattern (pattern=945015340, regp=0x0,
       translate=1211100160, posix=0, multibyte=0)
       at /usr/local/src/emacs-tiling/src/search.c:234
   #9  0x0814b382 in fast_c_string_match_ignore_case (regexp=945015340,
       string=0xbfffde60 "-bitstream-bitstream vera sans mono-medium-r-normal--11-110-75-75-c-70-iso8859-1") at /usr/local/src/emacs-tiling/src/search.c:487
   #10 0x080dffcd in font_rescale_ratio (
       name=0xbfffde60 "-bitstream-bitstream vera sans mono-medium-r-normal--11-110-75-75-c-70-iso8859-1") at /usr/local/src/emacs-tiling/src/xfaces.c:2269
   #11 0x080e0278 in split_font_name (f=0x21, font=0xbfffdf00, numeric_p=1)
       at /usr/local/src/emacs-tiling/src/xfaces.c:2292
   #12 0x080e1208 in set_lface_from_font_name (f=0x9198630, lface=1224195320,
       fontname=948528004, force_p=0, may_fail_p=1)
       at /usr/local/src/emacs-tiling/src/xfaces.c:3250
   #13 0x080e7395 in realize_default_face (f=0x9198630)
       at /usr/local/src/emacs-tiling/src/xfaces.c:6633
   #14 0x080e6f22 in realize_basic_faces (f=0x9198630)
       at /usr/local/src/emacs-tiling/src/xfaces.c:6571
   #15 0x080ded38 in recompute_basic_faces (f=0x9198630)
       at /usr/local/src/emacs-tiling/src/xfaces.c:955
   #16 0x08092acd in init_iterator (it=0xbfffe130, w=0x925a940, charpos=-1,
       bytepos=-1, row=0x0, base_face_id=DEFAULT_FACE_ID)
       at /usr/local/src/emacs-tiling/src/xdisp.c:2009
   #17 0x0809a566 in x_consider_frame_title (frame=1226409520)
       at /usr/local/src/emacs-tiling/src/xdisp.c:7810
   #18 0x0809a899 in prepare_menu_bars ()
       at /usr/local/src/emacs-tiling/src/xdisp.c:7869
   #19 0x0809cdbe in redisplay_internal (preserve_echo_area=0)
       at /usr/local/src/emacs-tiling/src/xdisp.c:9668
   #20 0x0809c8cd in redisplay () at /usr/local/src/emacs-tiling/src/xdisp.c:9458
   #21 0x08117294 in read_char (commandflag=1, nmaps=4, maps=0xbfffea50,
       prev_event=405734956, used_mouse_menu=0xbfffea88)
       at /usr/local/src/emacs-tiling/src/keyboard.c:2871
   #22 0x0811df87 in read_key_sequence (keybuf=0xbfffebb0, bufsize=30,
       prompt=405734956, dont_downcase_last=0, can_return_switch_frame=1,
       fix_current_buffer=1) at /usr/local/src/emacs-tiling/src/keyboard.c:8825
   #23 0x081147d7 in command_loop_1 ()
       at /usr/local/src/emacs-tiling/src/keyboard.c:1504
   #24 0x0817066d in internal_condition_case (bfun=0x8114650 <command_loop_1>,
       handlers=405846076, hfun=0x8114210 <cmd_error>)
       at /usr/local/src/emacs-tiling/src/eval.c:1333
   #25 0x081144fb in command_loop_2 ()
       at /usr/local/src/emacs-tiling/src/keyboard.c:1292
   #26 0x081701ea in internal_catch (tag=33, func=0x81144e0 <command_loop_2>,
       arg=405734956) at /usr/local/src/emacs-tiling/src/eval.c:1094
   #27 0x081144b1 in command_loop ()
       at /usr/local/src/emacs-tiling/src/keyboard.c:1271
   #28 0x08113fc2 in recursive_edit_1 ()
       at /usr/local/src/emacs-tiling/src/keyboard.c:987
   #29 0x081140db in Frecursive_edit ()
       at /usr/local/src/emacs-tiling/src/keyboard.c:1043
   #30 0x08112972 in main (argc=3, argv=0xbffff194)
       at /usr/local/src/emacs-tiling/src/emacs.c:1666

-- 
"Whatever you do will be insignificant, but it is very important that
 you do it."  Mahatma Ghandi

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

end of thread, other threads:[~2003-08-19  4:30 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-08-04 21:08 infloop when removing character Simon Josefsson
2003-08-07  6:05 ` Richard Stallman
2003-08-07 22:05   ` Simon Josefsson
2003-08-14 22:35   ` Simon Josefsson
2003-08-14 23:46     ` Simon Josefsson
2003-08-18  6:46       ` Miles Bader
2003-08-18 10:10         ` Simon Josefsson
2003-08-19  4:30           ` Miles Bader
2003-08-17  0:35     ` Richard Stallman

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).