Re: [Audacity-devel] [DUMP+FREEBSD] Closing audacity 2.3.3_1 leads to core dump
A free multi-track audio editor and recorder
Brought to you by:
aosiniao
|
From: Leland L. <ll...@ho...> - 2020-02-09 23:28:21
|
Hi Hans,
I've been seeing it with the cmake build on Linux, FreeBSD, and on Windows
(a possibly different one) on Windows. I was just assuming I hadn't quite
gotten the compile options the same since it doesn't seem to happen with the
usual build methods. But, you and someone working on the MacPorts build has
experienced the same thing (he tests builds on Linux also).
The MacPorts person has been doing some analysis on it and has tracked it
down to Scrubber() (maybe a double free of some sort). Using valgrind he
sees an "invalid read of size 8" in Scrubber().
I see it whether I build using the Audacity version of wxWidgets 3.1.1 or
with the system version of wxWidgets (3.0.4 in my case). It happens whether
it's GTK2 or GTK3. Here's my backtrace from Linux (wx3.0.4/gtk2).
../src/common/wincmn.cpp(1466): assert "secondHandler != __null" failed in
PopEventHandler(): the first handler of the wxWindow stack should have
non-NULL next handler
Thread 1 "audacity" received signal SIGSEGV, Segmentation fault.
0x00007ffff57ad988 in typeinfo for wxChoiceBase ()
from /lib64/libwx_gtk2u_core-3.0.so.0
#0 0x00007ffff57ad988 in typeinfo for wxChoiceBase ()
at /lib64/libwx_gtk2u_core-3.0.so.0
#1 0x00007ffff504123b in wxEvtHandler::SafelyProcessEvent(wxEvent&)
(this=<optimized out>, event=...) at ../src/common/event.cpp:1611
#2 0x00007ffff5607720 in wxWindowBase::HandleWindowEvent(wxEvent&) const
(this=this@entry=0x23c46c0, event=...) at ../include/wx/window.h:846
#3 0x00007ffff5421209 in size_allocate(GtkWidget*, GtkAllocation*,
wxTopLevelWindowGTK*) (alloc=<optimized out>, win=0x23c46c0) at
../src/gtk/toplevel.cpp:284
#7 0x00007ffff5d68973 in <emit signal ??? on instance 0x1fb89d0 [wxPizza]>
(instance=instance@entry=0x1fb89d0, signal_id=<optimized out>,
detail=detail@entry=0) at ../gobject/gsignal.c:3447
#4 0x00007ffff5d4b742 in g_closure_invoke
(closure=0x23e5090, return_value=0x0, n_param_values=2,
param_values=0x7fffffffb8b0, invocation_hint=0x7fffffffb830) at
../gobject/gclosure.c:810
#5 0x00007ffff5d5f4f4 in signal_emit_unlocked_R
(node=node@entry=0x1f54000, detail=detail@entry=0,
instance=instance@entry=0x1fb89d0,
emission_return=emission_return@entry=0x0,
instance_and_params=instance_and_params@entry=0x7fffffffb8b0) at
../gobject/gsignal.c:3635
#6 0x00007ffff5d6834e in g_signal_emit_valist
(instance=<optimized out>, signal_id=<optimized out>, detail=<optimized
out>, var_args=var_args@entry=0x7fffffffba90) at ../gobject/gsignal.c:3391
#8 0x00007ffff64b00b3 in IA__gtk_widget_size_allocate
(widget=0x1fb89d0 [wxPizza], allocation=allocation@entry=0x7fffffffbc20)
at gtkwidget.c:4122
#9 0x00007ffff62afd9a in gtk_box_size_allocate
(widget=<optimized out>, allocation=0x7fffffffc0f0) at gtkbox.c:500
#13 0x00007ffff5d68973 in <emit signal ??? on instance 0x1fb8950 [GtkVBox]>
(instance=instance@entry=0x1fb8950, signal_id=<optimized out>,
detail=detail@entry=0) at ../gobject/gsignal.c:3447
#10 0x00007ffff5d4b648 in g_closure_invoke
(closure=0x1f53fb0, return_value=0x0, n_param_values=2,
param_values=0x7fffffffbe30, invocation_hint=0x7fffffffbdb0) at
../gobject/gclosure.c:810
#11 0x00007ffff5d5f639 in signal_emit_unlocked_R
(node=node@entry=0x1f54000, detail=detail@entry=0,
instance=instance@entry=0x1fb8950,
emission_return=emission_return@entry=0x0,
instance_and_params=instance_and_params@entry=0x7fffffffbe30) at
../gobject/gsignal.c:3565
#12 0x00007ffff5d6834e in g_signal_emit_valist
(instance=<optimized out>, signal_id=<optimized out>, detail=<optimized
out>, var_args=var_args@entry=0x7fffffffc010) at ../gobject/gsignal.c:3391
#14 0x00007ffff64b00b3 in IA__gtk_widget_size_allocate
(widget=0x1fb8950 [GtkVBox], allocation=allocation@entry=0x7fffffffc150)
at gtkwidget.c:4122
#15 0x00007ffff64bce85 in gtk_window_size_allocate
(widget=0x1fb64f0 [GtkWindow], allocation=0x7fffffffc610)
at gtkwindow.c:4994
#19 0x00007ffff5d68973 in <emit signal ??? on instance 0x1fb64f0
[GtkWindow]>
(instance=instance@entry=0x1fb64f0, signal_id=<optimized out>,
detail=detail@entry=0) at ../gobject/gsignal.c:3447
#16 0x00007ffff5d4b742 in g_closure_invoke
(closure=0x1f53fb0, return_value=0x0, n_param_values=2,
param_values=0x7fffffffc350, invocation_hint=0x7fffffffc2d0) at
../gobject/gclosure.c:810
#17 0x00007ffff5d5f639 in signal_emit_unlocked_R
(node=node@entry=0x1f54000, detail=detail@entry=0,
instance=instance@entry=0x1fb64f0,
emission_return=emission_return@entry=0x0,
instance_and_params=instance_and_params@entry=0x7fffffffc350) at
../gobject/gsignal.c:3565
#18 0x00007ffff5d6834e in g_signal_emit_valist
(instance=<optimized out>, signal_id=<optimized out>, detail=<optimized
out>, var_args=var_args@entry=0x7fffffffc530) at ../gobject/gsignal.c:3391
#20 0x00007ffff64b00b3 in IA__gtk_widget_size_allocate
(widget=0x1fb64f0 [GtkWindow], allocation=<optimized out>)
at gtkwidget.c:4122
#21 0x00007ffff62ea3ec in IA__gtk_container_resize_children
(container=container@entry=0x1fb64f0 [GtkWindow]) at gtkcontainer.c:1478
#22 0x00007ffff64bca7e in gtk_window_move_resize (window=0x1fb64f0
[GtkWindow])
at gtkwindow.c:6403
#23 0x00007ffff64bca7e in gtk_window_check_resize (container=<optimized
out>)
at gtkwindow.c:5408
#24 0x00007ffff64bca7e in gtk_window_check_resize (container=<optimized
out>)
at gtkwindow.c:5405
#28 0x00007ffff5d68973 in <emit signal ??? on instance 0x1fb64f0
[GtkWindow]>
(instance=<optimized out>, signal_id=<optimized out>, detail=<optimized
out>) at ../gobject/gsignal.c:3447
#25 0x00007ffff5d4b742 in g_closure_invoke
(closure=0x1f5f280, return_value=0x0, n_param_values=1,
param_values=0x7fffffffc930, invocation_hint=0x7fffffffc8b0) at
../gobject/gclosure.c:810
#26 0x00007ffff5d5ed94 in signal_emit_unlocked_R
(node=node@entry=0x1f5f2b0, detail=detail@entry=0,
instance=instance@entry=0x1fb64f0,
emission_return=emission_return@entry=0x0,
instance_and_params=instance_and_params@entry=0x7fffffffc930) at
../gobject/gsignal.c:3673
#27 0x00007ffff5d6834e in g_signal_emit_valist
(instance=<optimized out>, signal_id=<optimized out>, detail=<optimized
out>, var_args=var_args@entry=0x7fffffffcaf0) at ../gobject/gsignal.c:3391
#29 0x00007ffff62ea388 in gtk_container_idle_sizer (data=<optimized out>)
at gtkcontainer.c:1357
#30 0x00007ffff617b039 in gdk_threads_dispatch (data=data@entry=0x29cf080)
at gdk.c:534
#31 0x00007ffff4bf87cb in g_idle_dispatch
(source=source@entry=0x2530680, callback=0x7ffff617b000
<gdk_threads_dispatch>, user_data=0x29cf080) at ../glib/gmain.c:5627
#32 0x00007ffff4bfbecd in g_main_dispatch (context=0x1f41cb0)
at ../glib/gmain.c:3189
#33 0x00007ffff4bfbecd in g_main_context_dispatch
(context=context@entry=0x1f41cb0) at ../glib/gmain.c:3854
#34 0x00007ffff4bfc260 in g_main_context_iterate
(context=0x1f41cb0, block=block@entry=1, dispatch=dispatch@entry=1,
self=<optimized out>) at ../glib/gmain.c:3927
#35 0x00007ffff4bfc593 in g_main_loop_run (loop=0x2394aa0)
at ../glib/gmain.c:4123
#36 0x00007ffff62edd04 in IA__gtk_dialog_run
(dialog=0x253f480 [GtkAssertDialog]) at gtkdialog.c:1094
#37 0x00007ffff54259ed in wxGUIAppTraits::ShowAssertDialog(wxString const&)
(this=<optimized out>, msg=...) at ../src/gtk/utilsgtk.cpp:329
#38 0x00007ffff4eb1d17 in ShowAssertDialog(wxString const&, int, wxString
const&, wxString const&, wxString const&, wxAppTraits*)
(file=..., line=<optimized out>, func=..., cond=..., msgUser=...,
traits=0x1e38840) at /usr/include/c++/9/bits/char_traits.h:413
#39 0x00007ffff4eb1f8c in wxAppConsoleBase::OnAssertFailure(wchar_t const*,
int, wchar_t const*, wchar_t const*, wchar_t const*)
(this=this@entry=0x1efd0b0, file=<optimized out>, line=1466,
func=<optimized out>, cond=<optimized out>, msg=<optimized out>)
at ../include/wx/string.h:3488
#40 0x00007ffff53f0ca4 in wxApp::OnAssertFailure(wchar_t const*, int,
wchar_t const*, wchar_t const*, wchar_t const*)
(this=0x1efd0b0, file=<optimized out>, line=<optimized out>,
func=<optimized out>, cond=<optimized out>, msg=<optimized out>) at
../src/gtk/app.cpp:540
#41 0x00007ffff4eb226f in wxDefaultAssertHandler(wxString const&, int,
wxString const&, wxString const&, wxString const&)
(file=..., line=line@entry=1466, func=..., cond=..., msg=...)
at ../include/wx/string.h:4179
#42 0x00007ffff4eadb59 in wxOnAssert(char const*, int, char const*, char
const*, char const*)
(file=file@entry=0x7ffff56c9b75 "../src/common/wincmn.cpp", line=1466,
func=<optimized out>, cond=<optimized out>, msg=<optimized out>)
at ../include/wx/string.h:3488
#43 0x00007ffff5607483 in wxWindowBase::PopEventHandler(bool)
(this=<optimized out>, deleteHandler=<optimized out>)
at ../src/common/wincmn.cpp:1462
#44 0x00000000013b3c5d in Scrubber::~Scrubber() (
this=0x2503af0, __in_chrg=<optimized out>)
at /home/yam/audacity/src/tracks/ui/Scrubbing.cpp:246
#45 0x00000000013bc76e in
__gnu_cxx::new_allocator<Scrubber>::destroy<Scrubber>(Scrubber*)
(this=0x2503af0, __p=0x2503af0)
at /usr/include/c++/9/ext/new_allocator.h:153
#46 0x00000000013bc705 in std::allocator_traits<std::allocator<Scrubber>
>::destroy<Scrubber>(std::allocator<Scrubber>&, Scrubber*) (__a=...,
__p=0x2503af0)
at /usr/include/c++/9/bits/alloc_traits.h:497
#47 0x00000000013bc411 in std::_Sp_counted_ptr_inplace<Scrubber,
std::allocator<Scrubber>, (__gnu_cxx::_Lock_policy)2>::_M_dispose()
(this=0x2503ae0)
at /usr/include/c++/9/bits/shared_ptr_base.h:557
#48 0x0000000000cfc9f0 in
std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release()
(this=0x2503ae0) at /usr/include/c++/9/bits/shared_ptr_base.h:155
#49 0x0000000000cfaa1f in
std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count()
(this=0x2151718, __in_chrg=<optimized out>)
at /usr/include/c++/9/bits/shared_ptr_base.h:730
#50 0x0000000000da6250 in std::__shared_ptr<ClientData::Base,
(__gnu_cxx::_Lock_policy)2>::~__shared_ptr() (this=0x2151710,
__in_chrg=<optimized out>)
at /usr/include/c++/9/bits/shared_ptr_base.h:1169
#51 0x0000000000da626c in std::shared_ptr<ClientData::Base>::~shared_ptr()
(this=0x2151710, __in_chrg=<optimized out>)
at /usr/include/c++/9/bits/shared_ptr.h:103
#52 0x0000000000db1a5b in std::_Destroy<std::shared_ptr<ClientData::Base>
>(std::shared_ptr<ClientData::Base>*) (__pointer=0x2151710)
at /usr/include/c++/9/bits/stl_construct.h:98
#53 0x0000000000db105b in
std::_Destroy_aux<false>::__destroy<std::shared_ptr<ClientData::Base>*>(std:
:shared_ptr<ClientData::Base>*, std::shared_ptr<ClientData::Base>*)
(__first=0x2151710, __last=0x2151730)
at /usr/include/c++/9/bits/stl_construct.h:108
#54 0x0000000000db020c in
std::_Destroy<std::shared_ptr<ClientData::Base>*>(std::shared_ptr<ClientData
::Base>*, std::shared_ptr<ClientData::Base>*)
(__first=0x2151550, __last=0x2151730)
at /usr/include/c++/9/bits/stl_construct.h:137
#55 0x0000000000dae89a in std::_Destroy<std::shared_ptr<ClientData::Base>*,
std::shared_ptr<ClientData::Base> >(std::shared_ptr<ClientData::Base>*,
std::shared_ptr<ClientData::Base>*,
std::allocator<std::shared_ptr<ClientData::Base> >&)
(__first=0x2151550, __last=0x2151730)
at /usr/include/c++/9/bits/stl_construct.h:206
#56 0x0000000000e87a6f in std::vector<std::shared_ptr<ClientData::Base>,
std::allocator<std::shared_ptr<ClientData::Base> > >::~vector()
(this=0x2385c78, __in_chrg=<optimized out>)
at /usr/include/c++/9/bits/stl_vector.h:677
#57 0x0000000000e86fe2 in
ClientData::Copyable<std::vector<std::shared_ptr<ClientData::Base>,
std::allocator<std::shared_ptr<ClientData::Base> > >,
(ClientData::CopyingPolicy)0>::~Copyable() (this=0x2385c78,
__in_chrg=<optimized out>)
at /home/yam/audacity/src/ClientDataHelpers.h:89
#58 0x0000000000e8701a in
ClientData::Lockable<ClientData::Copyable<std::vector<std::shared_ptr<Client
Data::Base>, std::allocator<std::shared_ptr<ClientData::Base> > >,
(ClientData::CopyingPolicy)0>, (ClientData::LockingPolicy)0>::~Lockable()
(this=0x2385c78, __in_chrg=<optimized out>)
at /home/yam/audacity/src/ClientDataHelpers.h:56
#59 0x0000000000e8709e in ClientData::Site<AudacityProject,
ClientData::Base, (ClientData::CopyingPolicy)0, std::shared_ptr,
(ClientData::LockingPolicy)0, (ClientData::LockingPolicy)0>::~Site()
(this=0x2385c78, __in_chrg=<optimized out>)
at /home/yam/audacity/src/ClientData.h:199
#60 0x0000000000e861cc in AudacityProject::~AudacityProject()
(this=0x2385c20, __in_chrg=<optimized out>)
at /home/yam/audacity/src/Project.cpp:126
#61 0x0000000000ec3c7e in
__gnu_cxx::new_allocator<AudacityProject>::destroy<AudacityProject>(Audacity
Project*) (this=0x2385c20, __p=0x2385c20)
at /usr/include/c++/9/ext/new_allocator.h:153
#62 0x0000000000ec3b4d in
std::allocator_traits<std::allocator<AudacityProject>
>::destroy<AudacityProject>(std::allocator<AudacityProject>&,
AudacityProject*)
(__a=..., __p=0x2385c20) at /usr/include/c++/9/bits/alloc_traits.h:497
#63 0x0000000000ec3493 in std::_Sp_counted_ptr_inplace<AudacityProject,
std::allocator<AudacityProject>, (__gnu_cxx::_Lock_policy)2>::_M_dispose()
(this=0x2385c10) at /usr/include/c++/9/bits/shared_ptr_base.h:557
#64 0x0000000000cfc9f0 in
std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release()
(this=0x2385c10) at /usr/include/c++/9/bits/shared_ptr_base.h:155
#65 0x0000000000cfaa1f in
std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count()
(this=0x7fffffffd708, __in_chrg=<optimized out>)
at /usr/include/c++/9/bits/shared_ptr_base.h:730
#66 0x0000000000d1145a in std::__shared_ptr<AudacityProject,
(__gnu_cxx::_Lock_policy)2>::~__shared_ptr() (this=0x7fffffffd700,
__in_chrg=<optimized out>)
at /usr/include/c++/9/bits/shared_ptr_base.h:1169
#67 0x0000000000ebf969 in std::__shared_ptr<AudacityProject,
(__gnu_cxx::_Lock_policy)2>::reset() (this=0x7fffffffd880)
at /usr/include/c++/9/bits/shared_ptr_base.h:1287
#68 0x0000000000ebc4c6 in ProjectManager::OnCloseWindow(wxCloseEvent&)
(this=0x246eec0, event=...)
at /home/yam/audacity/src/ProjectManager.cpp:812
#69 0x00007ffff5040f0b in
wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&,
wxEvtHandler*, wxEvent&)
(event=..., handler=<optimized out>, entry=...) at
../include/wx/app.h:439
#70 0x00007ffff5040f0b in
wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&,
wxEvtHandler*, wxEvent&)
(entry=..., handler=<optimized out>, event=...)
at ../src/common/event.cpp:1365
#71 0x00007ffff50412ba in wxEvtHandler::SearchDynamicEventTable(wxEvent&)
(this=0x23c46c0, event=...) at ../src/common/event.cpp:1749
#72 0x00007ffff5041354 in wxEvtHandler::TryHereOnly(wxEvent&)
(this=0x23c46c0, event=...) at ../src/common/event.cpp:1583
#73 0x00007ffff50411e3 in wxEvtHandler::DoTryChain(wxEvent&)
(this=<optimized out>, event=...) at ../src/common/event.cpp:1552
#74 0x00007ffff50414b1 in wxEvtHandler::ProcessEvent(wxEvent&)
(this=0x2538e80, event=...) at ../src/common/event.cpp:1493
#75 0x00007ffff504123b in wxEvtHandler::SafelyProcessEvent(wxEvent&)
(this=<optimized out>, event=...) at ../src/common/event.cpp:1611
#76 0x00007ffff5607720 in wxWindowBase::HandleWindowEvent(wxEvent&) const
(this=this@entry=0x23c46c0, event=...) at ../include/wx/window.h:846
#77 0x00007ffff5607818 in wxWindowBase::Close(bool)
(this=this@entry=0x23c46c0, force=force@entry=false)
at ../src/common/wincmn.cpp:589
#78 0x00007ffff54210b3 in gtk_frame_delete_callback(GtkWidget*, GdkEvent*,
wxTopLevelWindowGTK*) (win=win@entry=0x23c46c0) at
../src/gtk/toplevel.cpp:304
#83 0x00007ffff5d68973 in <emit signal ??? on instance 0x1fb64f0
[GtkWindow]>
(instance=instance@entry=0x1fb64f0, signal_id=<optimized out>,
detail=detail@entry=0) at ../gobject/gsignal.c:3447
#79 0x00007ffff637619d in _gtk_marshal_BOOLEAN__BOXED
(closure=closure@entry=0x23c4ca0,
return_value=return_value@entry=0x7fffffffdde0,
n_param_values=n_param_values@entry=2,
param_values=param_values@entry=0x7fffffffde40,
invocation_hint=invocation_hint@entry=0x7fffffffddc0,
marshal_data=marshal_data@entry=0x0) at gtkmarshalers.c:84
#80 0x00007ffff5d4b742 in g_closure_invoke
(closure=0x23c4ca0, return_value=0x7fffffffdde0, n_param_values=2,
param_values=0x7fffffffde40, invocation_hint=0x7fffffffddc0)
at ../gobject/gclosure.c:810
#81 0x00007ffff5d5f4f4 in signal_emit_unlocked_R
(node=<optimized out>, detail=detail@entry=0,
instance=instance@entry=0x1fb64f0,
emission_return=emission_return@entry=0x7fffffffdf70,
instance_and_params=instance_and_params@entry=0x7fffffffde40) at
../gobject/gsignal.c:3635
#82 0x00007ffff5d679c1 in g_signal_emit_valist
(instance=<optimized out>, signal_id=<optimized out>, detail=<optimized
out>, var_args=var_args@entry=0x7fffffffe020) at ../gobject/gsignal.c:3401
#84 0x00007ffff64ab5ed in gtk_widget_event_internal
(widget=widget@entry=0x1fb64f0 [GtkWindow], event=event@entry=0x296ce40)
at gtkwidget.c:5017
#85 0x00007ffff64ab8c9 in IA__gtk_widget_event
(widget=widget@entry=0x1fb64f0 [GtkWindow], event=event@entry=0x296ce40)
at gtkwidget.c:4814
#86 0x00007ffff6374433 in IA__gtk_main_do_event (event=0x296ce40)
at gtkmain.c:1725
#87 0x00007ffff6374433 in IA__gtk_main_do_event (event=<optimized out>)
at gtkmain.c:1503
#88 0x00007ffff61bf670 in gdk_event_dispatch
(source=source@entry=0x1f41bc0, callback=<optimized out>,
user_data=<optimized out>) at gdkevents-x11.c:2425
#89 0x00007ffff4bfbecd in g_main_dispatch (context=0x1f41cb0)
at ../glib/gmain.c:3189
#90 0x00007ffff4bfbecd in g_main_context_dispatch
(context=context@entry=0x1f41cb0) at ../glib/gmain.c:3854
#91 0x00007ffff4bfc260 in g_main_context_iterate
(context=0x1f41cb0, block=block@entry=1, dispatch=dispatch@entry=1,
self=<optimized out>) at ../glib/gmain.c:3927
#92 0x00007ffff4bfc593 in g_main_loop_run (loop=0x2523200)
at ../glib/gmain.c:4123
#93 0x00007ffff6373112 in IA__gtk_main () at gtkmain.c:1270
#94 0x00007ffff540d135 in wxGUIEventLoop::DoRun() (this=0x1f7c350)
at ../src/gtk/evtloop.cpp:65
#95 0x00007ffff4eef171 in wxEventLoopBase::Run() (this=0x1f7c350)
at ../src/common/evtloopcmn.cpp:78
#96 0x00007ffff4eafc6a in wxAppConsoleBase::MainLoop() (this=0x1efd0b0)
at ../src/common/appbase.cpp:334
#97 0x00007ffff4f43abc in wxEntry(int&, wchar_t**)
(argc=<optimized out>, argv=<optimized out>) at ../include/wx/app.h:439
#98 0x0000000000d09750 in main(int, char**) (argc=1, argv=0x7fffffffe4b8)
at /home/yam/audacity/src/AudacityApp.cpp:806
|