Fedora 19, 2.0.3 free, non-free Segfaults using Equalization

Hello; using Fedora 19 x64, recent install, May 2013 2.0.3 from repos.

Both free and non-free Audacity segfault when using Equalization function; other functions appear to work.

Per other reports, I visually checked, removed swapped in known good /usr/share/audacity/EQDefaultCurves.xml. No change.

Strace shows little except for opening font files before SIGSEGV.

Thank You.

Looking further, I am adding this partial backtrace at the point of segfault…

#0 Add (userData=0x0, border=0, flag=10496, proportion=0, window=0x195ba60, this=0x0) at /usr/include/wx-2.8/wx/sizer.h:946
#1 EqualizationDialog::MakeEqualizationDialog (this=this@entry=0x7fffffffc260) at effects/Equalization.cpp:1214
#2 0x00000000006513be in EqualizationDialog::EqualizationDialog (this=0x7fffffffc260, effect=0x1260760, loFreq=20, hiFreq=22050,
filterFuncR=0x12975e0, filterFuncI=0x12a75f0, windowSize=16384, curveName=…, disallowCustom=false, parent=0x1261410, id=-1, title=…,
position=…, size=…, style=536877056) at effects/Equalization.cpp:949
#3 0x000000000065165c in EffectEqualization::PromptUser (this=0x1260760) at effects/Equalization.cpp:279
<…>

Thank You

Try building the latest 2.0.4 alpha development code http://audacityteam.org/community/developers#svn .

I sometimes got segfaults using Save/Manage Curves in EQ on Ubuntu until we fixed a bug in EQ sometime after 2.0.3 release.

If the current code has the same problem, please provide steps to reproduce and the complete backtrace (wrap it inside code tags using the button in the message edit window).



Gale

I can confirm segmentation faults occurring on:

  • Fedora 19
  • both audacity-2.0.3-1.x86_64 and audacity-2.0.4-1.x86_64
  • audacity-freeworld-2.0.4-1.x86_64

Reproducer:
Start audacity
Generate|Sine| defaults 30 seconds long.
Effect|Equalizer

What happens:
audacity disappears.
when run from command prompt:

Program received signal SIGSEGV, Segmentation fault.
0x0000000000655e27 in EqualizationDialog::MakeEqualizationDialog() ()

Under gdb:

(gdb) thread apply all bt

Thread 10 (Thread 0x7fffe9ed3700 (LWP 13251)):
#0  0x0000003f73a0e80d in nanosleep () at ../sysdeps/unix/syscall-template.S:81
#1  0x0000003f7beedc1c in wxMicroSleep(unsigned long) ()
   from /lib64/libwx_baseu-2.8.so.0
#2  0x000000000052c41c in AudioThread::Entry() ()
#3  0x0000003f7bee9573 in wxThreadInternal::PthreadStart(wxThread*) ()
   from /lib64/libwx_baseu-2.8.so.0
#4  0x0000003f73a07c53 in start_thread (arg=0x7fffe9ed3700)
    at pthread_create.c:308
#5  0x0000003f732f5d3d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 2 (Thread 0x7fffec635700 (LWP 13242)):
#0  0x0000003f732eb76d in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x0000003f75a480f4 in g_main_context_poll (priority=2147483647, n_fds=5, 
    fds=0x7fffe4009e30, timeout=-1, context=0xe27ac0) at gmain.c:3995
#2  g_main_context_iterate (context=0xe27ac0, block=block@entry=1, 
    dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3696
#3  0x0000003f75a4855a in g_main_loop_run (loop=0xe27a50) at gmain.c:3895
#4  0x0000003f786c6d66 in gdbus_shared_thread_func (user_data=0xe27a90)
    at gdbusprivate.c:278
#5  0x0000003f75a6c185 in g_thread_proxy (data=0xe9d370) at gthread.c:798
#6  0x0000003f73a07c53 in start_thread (arg=0x7fffec635700)
    at pthread_create.c:308
#7  0x0000003f732f5d3d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113

Thread 1 (Thread 0x7ffff7f9aac0 (LWP 13235)):
#0  0x0000000000655e27 in EqualizationDialog::MakeEqualizationDialog() ()
#1  0x00000000006601fe in EqualizationDialog::EqualizationDialog(EffectEqualization*, double, double, float*, float*, long, wxString, bool, wxWindow*, int, wxString const&, wxPoint const&, wxSize const&, long) ()
#2  0x000000000066049c in EffectEqualization::PromptUser() ()
#3  0x000000000062a7e9 in Effect::DoEffect(wxWindow*, int, double, TrackList*, TrackFactory*, double*, double*, wxString) ()
#4  0x0000000000586103 in AudacityProject::OnEffect(int, Effect*, wxString, bool) ()
#5  0x00000000005867cb in AudacityProject::OnEffect(int, int) ()
#6  0x0000000000619f48 in CommandManager::HandleCommandEntry(CommandListEntry*, unsigned int, unsigned int) ()
#7  0x0000000000596d17 in AudacityProject::OnMenu(wxCommandEvent&) ()
#8  0x0000003f7beea676 in wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () from /lib64/libwx_baseu-2.8.so.0
#9  0x0000003f7beea71b in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) () from /lib64/libwx_baseu-2.8.so.0
#10 0x0000003f7beeaa87 in wxEvtHandler::ProcessEvent(wxEvent&) ()
   from /lib64/libwx_baseu-2.8.so.0
#11 0x0000003eefa5b7f5 in gtk_menu_clicked_callback ()
   from /lib64/libwx_gtk2u_core-2.8.so.0
#12 0x0000003f7720fa28 in g_closure_invoke (closure=0x1229c70, 
    return_value=return_value@entry=0x0, n_param_values=1, 
    param_values=param_values@entry=0x7fffffffd400, 
    invocation_hint=invocation_hint@entry=0x7fffffffd3a0) at gclosure.c:777
#13 0x0000003f77220a3d in signal_emit_unlocked_R (node=node@entry=0xe31000, 
    detail=detail@entry=0, instance=instance@entry=0x12280c0, 
    emission_return=emission_return@entry=0x0, 
    instance_and_params=instance_and_params@entry=0x7fffffffd400)
    at gsignal.c:3584
#14 0x0000003f77228829 in g_signal_emit_valist (instance=<optimized out>, 
    signal_id=<optimized out>, detail=<optimized out>, 
    var_args=var_args@entry=0x7fffffffd588) at gsignal.c:3328
#15 0x0000003f77228a72 in g_signal_emit (instance=instance@entry=0x12280c0, 
    signal_id=<optimized out>, detail=detail@entry=0) at gsignal.c:3384
#16 0x0000003eede6913c in IA__gtk_widget_activate (
    widget=widget@entry=0x12280c0) at gtkwidget.c:5048
#17 0x0000003eedd572ed in IA__gtk_menu_shell_activate_item (
    menu_shell=0x120d250, menu_item=0x12280c0, 
    force_deactivate=<optimized out>) at gtkmenushell.c:1303
#18 0x0000003eedd5769c in gtk_menu_shell_button_release (widget=0x120d250, 
    event=<optimized out>) at gtkmenushell.c:730
#19 0x0000003eedd426ec in _gtk_marshal_BOOLEAN__BOXED (closure=0xe21fb0, 
    return_value=0x7fffffffd840, n_param_values=<optimized out>, 
    param_values=0x7fffffffd8f0, invocation_hint=<optimized out>, 
    marshal_data=<optimized out>) at gtkmarshalers.c:86
#20 0x0000003f7720fa28 in g_closure_invoke (closure=closure@entry=0xe21fb0, 
    return_value=return_value@entry=0x7fffffffd840, n_param_values=2, 
    param_values=param_values@entry=0x7fffffffd8f0, 
    invocation_hint=invocation_hint@entry=0x7fffffffd890) at gclosure.c:777
#21 0x0000003f772207fb in signal_emit_unlocked_R (node=node@entry=0xe22000, 
    detail=detail@entry=0, instance=instance@entry=0x120d250, 
    emission_return=emission_return@entry=0x7fffffffd9c0, 
    instance_and_params=instance_and_params@entry=0x7fffffffd8f0)
    at gsignal.c:3622
#22 0x0000003f77228462 in g_signal_emit_valist (instance=<optimized out>, 
    signal_id=<optimized out>, detail=<optimized out>, 
    var_args=var_args@entry=0x7fffffffda88) at gsignal.c:3338
#23 0x0000003f77228a72 in g_signal_emit (instance=instance@entry=0x120d250, 
    signal_id=<optimized out>, detail=detail@entry=0) at gsignal.c:3384
#24 0x0000003eede6a474 in gtk_widget_event_internal (
    widget=widget@entry=0x120d250, event=event@entry=0x1396ee0)
    at gtkwidget.c:5017
#25 0x0000003eede6a749 in IA__gtk_widget_event (widget=widget@entry=0x120d250, 
    event=event@entry=0x1396ee0) at gtkwidget.c:4814
#26 0x0000003eedd40934 in IA__gtk_propagate_event (widget=0x120d250, 
    event=0x1396ee0) at gtkmain.c:2490
#27 0x0000003eedd40cfb in IA__gtk_main_do_event (event=0x1396ee0)
    at gtkmain.c:1685
#28 0x0000003eee45e2dc in gdk_event_dispatch (source=source@entry=0xdef340, 
    callback=<optimized out>, user_data=<optimized out>)
    at gdkevents-x11.c:2403
#29 0x0000003f75a47e06 in g_main_dispatch (context=0xdef430) at gmain.c:3054
#30 g_main_context_dispatch (context=context@entry=0xdef430) at gmain.c:3630
#31 0x0000003f75a48158 in g_main_context_iterate (context=0xdef430, 
    block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at gmain.c:3701
#32 0x0000003f75a4855a in g_main_loop_run (loop=0x12ec7e0) at gmain.c:3895
#33 0x0000003eedd3fdb7 in IA__gtk_main () at gtkmain.c:1257
#34 0x0000003eef9f624a in wxEventLoop::Run() ()
   from /lib64/libwx_gtk2u_core-2.8.so.0
#35 0x0000003eefa70e4c in wxAppBase::MainLoop() ()
   from /lib64/libwx_gtk2u_core-2.8.so.0
#36 0x0000003f7be9722d in wxEntry(int&, wchar_t**) ()
   from /lib64/libwx_baseu-2.8.so.0
#37 0x0000000000500042 in main ()

At this point, audacity is not playing/recording audio, so seems UI / processing related.

This does not happen with Audacity sources on Ubuntu.

Please try building Audacity from our source http://audacityteam.org/download/source .

We are not responsible for Fedora builds, so if their builds segfault but Audacity source doesn’t, then you must complain to Fedora. Have you looked at the Fedora bug tracker for other reports?


Gale

OK, thanks, I am much more interested if it occurs in the latest code.

Is your computer 64-bit, like the others?

Can you and others post your EQCurves.xml from ~/.audacity-data/ ?

Then I’ll try it on 64-bit Ubuntu with default curves and any others that are posted.


Gale

Hey Gale, it looks like Arch is not applying any patches that I (as one of the fedora/rpmfusion package maintainers) am using in the fedora package.

Bugs on Fedora:
https://bugzilla.redhat.com/show_bug.cgi?id=987837
https://bugzilla.redhat.com/show_bug.cgi?id=999145 captured by abrt with backtrace.

Biggest changes in fedora package appear to be: enabling libsoxr, using system portaudio, changes to use ffmpeg-compat. Do any of these interact with Equalizer effect ?
EQCurves.xml (4.54 KB)

I tried out a bunch of Fedora built Audacity builds on my x86_64 machine. The same rpm spec file, source and patches for 2.0.3 and 2.0.4 but built for Fedora 18 (previous release) and Fedora 19 (current release) can all be installed on Fedora 19. Only the ones built in Fedora 19’s or later build systems show this issue.

So, could be changes in includes especially wxGTK etc, or due to using a newer gcc compiler. I have asked on Fedora-devel list for info in case this raises eyebrows with someone more familiar with what might cause this.

Can non-fedora users seeing this issue (crash at Effect|Equalization) reply with the distribution, release, and the current wxGTK and GCC versions that the system is using ?
If you know which versions of wxGTK and GCC were included/used in the build process, that would be important as well, so please add that as well.

Hi,

Sorry I’ve had no time yet to check this on Ubuntu 64-bit, but does this recent code change prevent the crash http://code.google.com/p/audacity/source/detail?r=12569 ?


Gale