emacs aborts for ppc64el in 14.04

Bug #1318690 reported by William J. Schmidt
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
emacs24 (Debian)
Fix Released
Unknown
emacs24 (Ubuntu)
Confirmed
High
Unassigned

Bug Description

Using a fresh install of Ubuntu 14.04 and installing emacs produces an emacs that fails relatively quickly during an editing session. The immediate symptom is "Fatal error 6: Aborted", without dumping core, and leaving a companion thread behind in a wait state.

I normally use emacs -nw, and this is how I've observed the problem directly. I haven't found a way to get a stack trace using emacs -nw; all I end up with is the trace for the companion thread.

If I don't use -nw, I can get an abort with backtrace to occur using "gdb --args emacs foo.txt" (with emacs24-dbg installed). Backtrace follows:

#0 0x00003fffb5f40e88 in __GI_raise (sig=<optimized out>)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00003fffb5f46c6c in __GI_abort () at abort.c:89
#2 0x00003fffb5f90b34 in __malloc_assert (
    assertion=0x3fffb60911c0 "(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offs"...,
    file=0x3fffb6090790 "malloc.c", line=2372,
    function=0x3fffb6092020 <__func__.12342> "sysmalloc") at malloc.c:293
#3 0x00003fffb5f95214 in sysmalloc (av=0x3fffb60ba760 <main_arena>, nb=80)
    at malloc.c:2369
#4 _int_malloc (av=0x3fffb60ba760 <main_arena>, bytes=65) at malloc.c:3800
#5 0x00003fffb5f98bbc in _int_realloc (nb=80, oldsize=48, oldp=0x10ee3ef0,
    av=0x3fffb60ba760 <main_arena>) at malloc.c:4286
#6 __GI___libc_realloc (oldmem=0x10ee3f00, bytes=72) at malloc.c:3029
#7 0x00003fffb7019438 in g_realloc ()
   from /lib/powerpc64le-linux-gnu/libglib-2.0.so.0
#8 0x00003fffb712ef3c in ?? ()
   from /usr/lib/powerpc64le-linux-gnu/libgobject-2.0.so.0
#9 0x00003fffb7136f0c in g_signal_connect_data ()
   from /usr/lib/powerpc64le-linux-gnu/libgobject-2.0.so.0
#10 0x000000001013a4c0 in xg_create_one_menuitem (item=0x10e484f0,
    select_cb=0x10091140 <menubar_selection_callback>, cl_data=0x10e42360,
    group=0x3fffffffcef0, highlight_cb=0x10091060 <menu_highlight_callback>,
    f=0x10c80770) at gtkutil.c:2488
#11 0x000000001013b11c in create_menus (data=<optimized out>, f=0x10c80770,
    select_cb=0x10091140 <menubar_selection_callback>,
    deactivate_cb=0x10090bc0 <popup_deactivate_callback>,
    highlight_cb=0x10091060 <menu_highlight_callback>,
    menu_bar_p=<optimized out>, add_tearoff_p=<optimized out>,
    topmenu=<optimized out>, cl_data=0x10e42360, name=0x0, pop_up_p=false)
    at gtkutil.c:2622
#12 0x000000001013b154 in create_menus (data=<optimized out>, f=0x10c80770,
    select_cb=0x10091140 <menubar_selection_callback>,
    deactivate_cb=0x10090bc0 <popup_deactivate_callback>,
    highlight_cb=0x10091060 <menu_highlight_callback>,
    menu_bar_p=<optimized out>, add_tearoff_p=<optimized out>,
    topmenu=<optimized out>, cl_data=0x10e42360, name=0x0, pop_up_p=false)
    at gtkutil.c:2633
#13 0x000000001013b154 in create_menus (data=<optimized out>, f=0x10c80770,
    select_cb=0x10091140 <menubar_selection_callback>,
    deactivate_cb=0x10090bc0 <popup_deactivate_callback>,
    highlight_cb=0x10091060 <menu_highlight_callback>,
    menu_bar_p=<optimized out>, add_tearoff_p=<optimized out>,
    topmenu=<optimized out>, cl_data=0x10e42360, name=0x0, pop_up_p=false)
    at gtkutil.c:2633
#14 0x000000001013b154 in create_menus (data=<optimized out>, f=0x10c80770,
    select_cb=0x10091140 <menubar_selection_callback>,
    deactivate_cb=0x10090bc0 <popup_deactivate_callback>,
    highlight_cb=0x10091060 <menu_highlight_callback>, menu_bar_p=false,
    add_tearoff_p=true, topmenu=0x0, cl_data=0x10e42360, name=0x0,
    pop_up_p=false) at gtkutil.c:2633
#15 0x000000001013eab8 in create_menus (name=<optimized out>,
    cl_data=0x10e42360, topmenu=0x0, add_tearoff_p=<optimized out>,
    menu_bar_p=<optimized out>, pop_up_p=<optimized out>,
    highlight_cb=0x10091060 <menu_highlight_callback>,
    deactivate_cb=0x10090bc0 <popup_deactivate_callback>,
    select_cb=0x10091140 <menubar_selection_callback>, f=0x10c80770,
    data=<optimized out>) at gtkutil.c:2633
#16 xg_create_widget (type=<optimized out>, name=<optimized out>,
    f=0x10c80770, val=<optimized out>,
    select_cb=0x10091140 <menubar_selection_callback>,
    deactivate_cb=0x10090bc0 <popup_deactivate_callback>,
    highlight_cb=0x10091060 <menu_highlight_callback>) at gtkutil.c:2691
#17 0x0000000010092620 in set_frame_menubar (f=0x10c80770,
    first_time=<optimized out>, deep_p=true) at xmenu.c:1186
#18 0x000000001012af74 in Fx_create_frame (parms=278938710) at xfns.c:3393
#19 0x000000001020e0cc in Ffuncall (nargs=2, args=<optimized out>)
    at eval.c:2778
#20 0x000000001026d7e0 in exec_byte_code (bytestr=<optimized out>,
    vector=70368744167592, maxdepth=<optimized out>, args_template=271597120,
    nargs=4611686018695757824, args=0x4000000000300000) at bytecode.c:900
#21 0x0000000010214920 in funcall_lambda (fun=272261749, nargs=1,
    arg_vector=0x3fffffffdc20) at eval.c:3010
#22 0x000000001020dd50 in Ffuncall (nargs=2, args=0x3fffffffdc18)
    at eval.c:2839
#23 0x000000001026d7e0 in exec_byte_code (bytestr=<optimized out>,
    vector=70368744168472, maxdepth=<optimized out>, args_template=271597120,
    nargs=4611686018695757824, args=0x4000000000300000) at bytecode.c:900
#24 0x0000000010214920 in funcall_lambda (fun=272904229, nargs=1,
    arg_vector=0x3fffffffdf90) at eval.c:3010
#25 0x000000001020dd50 in Ffuncall (nargs=2, args=0x3fffffffdf88)
    at eval.c:2839
#26 0x000000001026d7e0 in exec_byte_code (bytestr=<optimized out>,
    vector=70368744169352, maxdepth=<optimized out>, args_template=271597120,
    nargs=4611686018695757824, args=0x4000000000300000) at bytecode.c:900
#27 0x0000000010214920 in funcall_lambda (fun=272899141, nargs=0,
    arg_vector=0x3fffffffe310) at eval.c:3010
#28 0x000000001020dd50 in Ffuncall (nargs=1, args=0x3fffffffe308)
    at eval.c:2839
#29 0x000000001026d7e0 in exec_byte_code (bytestr=<optimized out>,
    vector=70368744170248, maxdepth=<optimized out>, args_template=271597120,
    nargs=4611686018695757824, args=0x4000000000300000) at bytecode.c:900
#30 0x0000000010214700 in funcall_lambda (fun=272298637, nargs=0,
    arg_vector=0x3fffffffe6e8) at eval.c:2944
#31 0x000000001020dd50 in Ffuncall (nargs=1, args=0x3fffffffe6e0)
    at eval.c:2839
#32 0x000000001026d7e0 in exec_byte_code (bytestr=<optimized out>,
    vector=70368744171232, maxdepth=<optimized out>, args_template=271597120,
    nargs=4611686018695757824, args=0x4000000000300000) at bytecode.c:900
#33 0x0000000010214700 in funcall_lambda (fun=272295517, nargs=0,
    arg_vector=0x3fffffffe8e0) at eval.c:2944
#34 0x0000000010214df0 in apply_lambda (fun=272295517, args=<optimized out>)
    at eval.c:2887
#35 0x0000000010212278 in eval_sub (form=275494662) at eval.c:2218
#33 0x0000000010214700 in funcall_lambda (fun=272295517, nargs=0,
    arg_vector=0x3fffffffe8e0) at eval.c:2944
#34 0x0000000010214df0 in apply_lambda (fun=272295517, args=<optimized out>)
    at eval.c:2887
#35 0x0000000010212278 in eval_sub (form=275494662) at eval.c:2218
#36 0x0000000010213488 in Feval (form=275494662, lexical=<optimized out>)
    at eval.c:2005
#37 0x000000001014e270 in top_level_2 () at keyboard.c:1177
#38 0x000000001020cd44 in internal_condition_case (
    bfun=0x1014e240 <top_level_2>, handlers=275319474,
    hfun=0x10152810 <cmd_error>) at eval.c:1289
#39 0x000000001014e210 in top_level_1 (ignore=<optimized out>)
    at keyboard.c:1185
#40 0x000000001020cbd0 in internal_catch (tag=<optimized out>,
    func=0x1014e150 <top_level_1>, arg=275267794) at eval.c:1060
#41 0x0000000010156be0 in command_loop () at keyboard.c:1146
#42 recursive_edit_1 () at keyboard.c:779
#43 0x0000000010156dec in Frecursive_edit () at keyboard.c:843
#44 0x0000000010017d78 in main (argc=<optimized out>, argv=<optimized out>)
    at emacs.c:1528

I think it likely that similar malloc issues are causing the aborts I see using -nw.

I recall seeing the same issues with the emacs that used to ship with SLES10 or SLES11 for powerpc64 (big endian). I was able to build emacs from source there; I haven't tried that on Ubuntu 14.04 yet.

As another data point, emacs built and worked fine on a recent trial build of Fedora for ppc64el, so it doesn't appear to be an upstream issue. I've been told there weren't any special workarounds needed to build it.

Also, I tried uninstalling emacs24 and associated packages and installing emacs23, which requires build from source. All of the associated packages build and install ok, but emacs23 fails to build. The symptom is the same: Fatal error 6: Aborted.

Revision history for this message
William J. Schmidt (wschmidt-g) wrote :

FWIW, I downloaded emacs24 sources from the GNU website and built emacs by hand. No problems during build/install and the resulting binaries work fine. Attaching config.log in case it offers any clues.

Changed in emacs24 (Ubuntu):
assignee: nobody → Dimitri John Ledkov (xnox)
importance: Undecided → High
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in emacs24 (Ubuntu):
status: New → Confirmed
Changed in emacs24 (Ubuntu):
assignee: Dimitri John Ledkov (xnox) → nobody
Changed in emacs24 (Debian):
status: Unknown → New
Changed in emacs24 (Debian):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.