Description of problem: Always crashes when exiting the main window Version-Release number of selected component (if applicable): * audacity-2.3.3-7.fc33 * wxGTK3-3.0.5.1-2.fc33 How reproducible: Always Steps to Reproduce: 1. Start application 2. Close application Actual results: Crashes Expected results: Should not crash Additional info: ../src/common/wincmn.cpp(1466): assert "secondHandler != __null" failed in PopEventHandler(): the first handler of the wxWindow stack should have non-NULL next handler (audacity:109645): Gtk-WARNING **: 18:44:51.050: gtk_window_set_titlebar() called on a realized window --Type <RET> for more, q to quit, c to continue without paging--c Thread 1 "audacity" received signal SIGSEGV, Segmentation fault. 0x00007ffff74f2474 in wxEvtHandler::SafelyProcessEvent (this=0x555556b07630, event=...) at ../src/common/event.cpp:1611 1611 ../src/common/event.cpp: No such file or directory. (gdb) bt full #0 0x00007ffff74f2474 in wxEvtHandler::SafelyProcessEvent (this=0x555556b07630, event=...) at ../src/common/event.cpp:1611 No locals. #1 0x00007ffff7877e68 in gtk_frame_focus_out_callback () at ../src/gtk/toplevel.cpp:202 event = {<wxEvent> = {<wxObject> = {_vptr.wxObject = 0x555556306910 <vtable for wxActivateEvent+16>, static ms_classInfo = {m_className = 0x7ffff7539138 L"wxObject", m_objectSize = 16, m_objectConstructor = 0x0, m_baseInfo1 = 0x0, m_baseInfo2 = 0x0, static sm_first = 0x555556399000 <AboutDialog::ms_classInfo>, m_next = 0x7ffff759ce60 <wxProcessEvent::ms_classInfo>, static sm_classTable = 0x5555563cd5c0}, m_refData = 0x0}, m_eventObject = 0x555556a83e50, m_eventType = 10182, m_timeStamp = 0, m_id = -2008, m_callbackUserData = 0x0, m_handlerToProcessOnlyIn = 0x0, m_propagationLevel = 0, m_propagatedFrom = 0x0, m_skipped = false, m_isCommandEvent = false, m_wasProcessed = false, m_willBeProcessedAgain = false, static ms_classInfo = {m_className = 0x7ffff75389f8 L"wxEvent", m_objectSize = 88, m_objectConstructor = 0x0, m_baseInfo1 = 0x7ffff759d040 <wxObject::ms_classInfo>, m_baseInfo2 = 0x0, static sm_first = 0x555556399000 <AboutDialog::ms_classInfo>, m_next = 0x555556397940 <wxEvtHandler::ms_classInfo>, static sm_classTable = 0x5555563cd5c0}}, m_active = false, m_activationReason = wxActivateEvent::Reason_Unknown, static ms_classInfo = {m_className = 0x7ffff7aa5598 L"wxActivateEvent", m_objectSize = 96, m_objectConstructor = 0x7ffff783b550 <wxActivateEvent::wxCreateObject()>, m_baseInfo1 = 0x555556397e20 <wxEvent::ms_classInfo>, m_baseInfo2 = 0x0, static sm_first = 0x555556399000 <AboutDialog::ms_classInfo>, m_next = 0x7ffff7bbe240 <wxDropFilesEvent::ms_classInfo>, static sm_classTable = 0x5555563cd5c0}} #2 0x00007ffff6d1d59b in _gtk_marshal_BOOLEAN__BOXED (closure=0x555556a0fd00, return_value=0x7fffffffb140, n_param_values=<optimized out>, param_values=0x7fffffffb1a0, invocation_hint=<optimized out>, marshal_data=<optimized out>) at gtkmarshalers.c:83 cc = 0x555556a0fd00 data1 = 0x555556496a60 data2 = <optimized out> callback = 0x7ffff7877e00 <gtk_frame_focus_out_callback(GtkWidget*, GdkEventFocus*, wxTopLevelWindowGTK*)> v_return = <optimized out> __func__ = "_gtk_marshal_BOOLEAN__BOXED" #3 0x00007ffff67cde2a in g_closure_invoke (closure=0x555556a0fd00, return_value=0x7fffffffb140, n_param_values=2, param_values=0x7fffffffb1a0, invocation_hint=0x7fffffffb120) at ../gobject/gclosure.c:810 marshal = 0x7ffff6d1d530 <_gtk_marshal_BOOLEAN__BOXED> marshal_data = 0x0 in_marshal = 0 real_closure = 0x555556a0fce0 __func__ = "g_closure_invoke" #4 0x00007ffff67f7462 in signal_emit_unlocked_R.isra.0 (node=<optimized out>, detail=detail@entry=0, instance=instance@entry=0x555556496a60, emission_return=emission_return@entry=0x7fffffffb2c0, instance_and_params=instance_and_params@entry=0x7fffffffb1a0) at ../gobject/gsignal.c:3808 tmp = <optimized out> handler = 0x5555567b05c0 accumulator = 0x5555564a0540 emission = {next = 0x7fffffffc9a0, instance = 0x555556496a60, ihint = {signal_id = 92, detail = 0, run_type = G_SIGNAL_RUN_LAST}, state = EMISSION_RUN, chain_type = 4} class_closure = <optimized out> hlist = <optimized out> handler_list = <optimized out> return_accu = 0x7fffffffb140 accu = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} signal_id = 92 max_sequential_handler_number = 19141 return_value_altered = <optimized out> EMIT_RESTART = <optimized out> #5 0x00007ffff67eaaee in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffb370) at ../gobject/gsignal.c:3504 return_value = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} error = 0x0 rtype = 20 static_scope = 0 instance_and_params = 0x7fffffffb1a0 signal_return_type = <optimized out> param_values = 0x7fffffffb1b8 node = <optimized out> --Type <RET> for more, q to quit, c to continue without paging--c i = <optimized out> n_params = <optimized out> __func__ = "g_signal_emit_valist" #6 0x00007ffff67eb1a3 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3550 var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fffffffb450, reg_save_area = 0x7fffffffb390}} #7 0x00007ffff6ce4184 in gtk_widget_event_internal.part.0.lto_priv.0 (widget=0x555556496a60, event=0x7fffdc014720) at gtkwidget.c:7808 signal_num = <optimized out> return_val = <optimized out> handled = 0 __func__ = {<optimized out> <repeats 26 times>} #8 0x00007ffff6b874ba in gtk_main_do_event (event=0x7fffdc014720) at gtkmain.c:1860 grab_widget = 0x5555574783a0 window_group = 0x5555569f1160 rewritten_event = <optimized out> device = 0x5555564d7960 tmp_list = <optimized out> event_widget = 0x555556496a60 topmost_widget = <optimized out> event_widget = <optimized out> grab_widget = <optimized out> topmost_widget = <optimized out> window_group = <optimized out> rewritten_event = <optimized out> device = <optimized out> tmp_list = <optimized out> cleanup = <optimized out> __func__ = {<optimized out> <repeats 18 times>} __inst = <optimized out> __t = <optimized out> __r = <optimized out> window = <optimized out> __inst = <optimized out> __t = <optimized out> __r = <optimized out> __inst = <optimized out> __t = <optimized out> __r = <optimized out> mnemonics_visible = <optimized out> window = <optimized out> __inst = <optimized out> __t = <optimized out> __r = <optimized out> #9 gtk_main_do_event (event=<optimized out>) at gtkmain.c:1690 event_widget = <optimized out> grab_widget = <optimized out> topmost_widget = <optimized out> window_group = <optimized out> rewritten_event = <optimized out> device = <optimized out> tmp_list = <optimized out> cleanup = <optimized out> __func__ = "gtk_main_do_event" __inst = <optimized out> __t = <optimized out> __r = <optimized out> window = <optimized out> __inst = <optimized out> __t = <optimized out> __r = <optimized out> __inst = <optimized out> __t = <optimized out> __r = <optimized out> mnemonics_visible = <optimized out> window = <optimized out> __inst = <optimized out> __t = <optimized out> __r = <optimized out> #10 0x00007ffff6874043 in _gdk_event_emit (event=0x7fffdc014720) at gdkevents.c:73 No locals. #11 _gdk_event_emit (event=0x7fffdc014720) at gdkevents.c:67 No locals. #12 0x00007ffff68da172 in gdk_event_source_dispatch (base=base@entry=0x555556491050, callback=<optimized out>, data=<optimized out>) at gdkeventsource.c:124 source = 0x555556491050 display = <optimized out> event = 0x7fffdc014720 #13 0x00007ffff66dc7ef in g_main_dispatch (context=0x555556476800) at ../glib/gmain.c:3325 dispatch = <optimized out> prev_source = 0x555556491050 begin_time_nsec = 0 was_in_call = <optimized out> user_data = 0x0 callback = 0x0 cb_funcs = 0x0 cb_data = 0x0 need_destroy = <optimized out> source = 0x555556491050 current = 0x555556477920 i = 0 current = <optimized out> i = <optimized out> __func__ = {<optimized out> <repeats 16 times>} source = <optimized out> _g_boolean_var_ = <optimized out> was_in_call = <optimized out> user_data = <optimized out> callback = <optimized out> cb_funcs = <optimized out> cb_data = <optimized out> need_destroy = <optimized out> dispatch = <optimized out> prev_source = <optimized out> begin_time_nsec = <optimized out> _g_boolean_var_ = <optimized out> #14 g_main_context_dispatch (context=0x555556476800) at ../glib/gmain.c:4043 No locals. #15 0x00007ffff672e5d8 in g_main_context_iterate.constprop.0 (context=0x555556476800, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4119 max_priority = 0 timeout = 0 some_ready = 1 nfds = <optimized out> allocated_nfds = <optimized out> fds = 0x5555565c9200 begin_time_nsec = 0 #16 0x00007ffff66dbeb3 in g_main_loop_run (loop=0x5555573f5920) at ../glib/gmain.c:4317 self = <optimized out> __func__ = "g_main_loop_run" #17 0x00007ffff6ae8c23 in gtk_dialog_run (dialog=0x5555574783a0) at gtkdialog.c:1398 ri = {dialog = 0x0, response_id = -1, loop = 0x5555573f5920, destroyed = 0} was_modal = 0 response_handler = 19033 unmap_handler = 19034 destroy_handler = 19036 delete_handler = 19035 __func__ = "gtk_dialog_run" #18 0x00007ffff787f09d in wxGUIAppTraits::ShowAssertDialog (this=<optimized out>, msg=...) at ../src/gtk/utilsgtk.cpp:329 dialog = 0x5555574783a0 manager = <optimized out> device = <optimized out> dump = {<wxStackWalker> = {<wxStackWalkerBase> = {_vptr.wxStackWalkerBase = 0x7ffff7b9e8f8 <vtable for StackDump+16>}, static ms_exepath = {static npos = 18446744073709551615, m_impl = L"", m_convertedToChar = {m_str = 0x0, m_len = 0}}, static ms_addresses = {0x7ffff74d2eb0 <wxStackWalker::SaveStack(unsigned long)+32>, 0x7ffff787f066 <wxGUIAppTraits::ShowAssertDialog(wxString const&)+518>, 0x7ffff73fe6df <ShowAssertDialog(wxString const&, int, wxString const&, wxString const&, wxString const&, wxAppTraits*)+1423>, 0x7ffff73fe908 <wxAppConsoleBase::OnAssertFailure(wchar_t const*, int, wchar_t const*, wchar_t const*, wchar_t const*)+376>, 0x7ffff78523d0 <wxApp::OnAssertFailure(wchar_t const*, int, wchar_t const*, wchar_t const*, wchar_t const*)+16>, 0x7ffff73ffa85 <wxDefaultAssertHandler(wxString const&, int, wxString const&, wxString const&, wxString const&)+293>, 0x7ffff73fa304 <wxOnAssert(char const*, int, char const*, char const*, char const*)+148>, 0x7ffff79eca03 <wxWindowBase::PopEventHandler(bool)+179>, 0x555555dc257d <Scrubber::~Scrubber()+61>, 0x555555ada18a <AudacityProject::~AudacityProject()+314>, 0x5555559f0c8a <std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release()+58>, 0x555555b00ae8 <ProjectManager::OnCloseWindow(wxCloseEvent&)+856>, 0x7ffff74f226e <wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)+110>, 0x7ffff74f442a <wxEvtHandler::SearchDynamicEventTable(wxEvent&)+106>, 0x7ffff74f44c0 <wxEvtHandler::TryHereOnly(wxEvent&)+32>, 0x7ffff74f2433 <wxEvtHandler::DoTryChain(wxEvent&)+67>, 0x7ffff74f4661 <wxEvtHandler::ProcessEvent(wxEvent&)+145>, 0x7ffff74f2477 <wxEvtHandler::SafelyProcessEvent(wxEvent&)+7>, 0x7ffff79e7016 <wxWindowBase::Close(bool)+102>, 0x555555ba441b <CommandManager::HandleCommandEntry(CommandListEntry const*, std::bitset<64ul>, bool, wxEvent const*)+523>, 0x555555ba47bd <CommandManager::FilterKeyEvent(AudacityProject*, wxKeyEvent const&, bool)+797>, 0x555555a909c9 <EventMonitor::FilterEvent(wxEvent&)+697>, 0x7ffff74f4625 <wxEvtHandler::ProcessEvent(wxEvent&)+85>, 0x7ffff74f2477 <wxEvtHandler::SafelyProcessEvent(wxEvent&)+7>, 0x7ffff7882f26 <gtk_window_key_press_callback(GtkWidget*, GdkEventKey*, wxWindow*)+1366>, 0x7ffff6d1d59b <_gtk_marshal_BOOLEAN__BOXED+107>, 0x7ffff67cde2a <g_closure_invoke+394>, 0x7ffff67f7273 <signal_emit_unlocked_R.isra.0+2547>, 0x7ffff67eaaee <g_signal_emit_valist+3038>, 0x7ffff67eb1a3 <g_signal_emit+147>, 0x7ffff6ce4184 <gtk_widget_event_internal.part.0.lto_priv.0+436>, 0x7ffff6cf24cb <gtk_window_propagate_key_event+187>, 0x7ffff78740e9 <wxgtk_tlw_key_press_event(GtkWidget*, GdkEventKey*)+41>, 0x7ffff6d1d59b <_gtk_marshal_BOOLEAN__BOXED+107>, 0x7ffff67cde2a <g_closure_invoke+394>, 0x7ffff67f7273 <signal_emit_unlocked_R.isra.0+2547>, 0x7ffff67eaaee <g_signal_emit_valist+3038>, 0x7ffff67eb1a3 <g_signal_emit+147>, 0x7ffff6ce4184 <gtk_widget_event_internal.part.0.lto_priv.0+436>, 0x7ffff6b8698f <propagate_event+543>, 0x7ffff6b87ba3 <gtk_main_do_event+4451>, 0x7ffff6874043 <_gdk_event_emit+99>, 0x7ffff68da172 <gdk_event_source_dispatch+34>, 0x7ffff66dc7ef <g_main_context_dispatch+367>, 0x7ffff672e5d8 <g_main_context_iterate.constprop.0+488>, 0x7ffff66dbeb3 <g_main_loop_run+131>, 0x7ffff6b8320d <gtk_main+157>, 0x7ffff7868835 <wxGUIEventLoop::DoRun()+37>, 0x7ffff74241bd <wxEventLoopBase::Run()+45>, 0x7ffff7401d7a <wxAppConsoleBase::MainLoop()+90>, 0x7ffff745c47c <wxEntry(int&, wchar_t**)+76>, 0x5555559b30f6 <main+22>, 0x7ffff604c1e2 <__libc_start_main+242>, 0x5555559e1f5e <_start+46>, 0x0 <repeats 146 times>}, static ms_symbols = 0x5555574a0800, static m_depth = 54}, m_dlg = 0x5555574783a0} display = <optimized out> result = <optimized out> returnCode = <optimized out> __FUNCTION__ = {<optimized out> <repeats 17 times>} #19 0x00007ffff73fe6df in ShowAssertDialog (file=..., line=1466, func=..., cond=..., msgUser=..., traits=0x555556456950) at ../src/common/appbase.cpp:1303 msg = {static npos = 18446744073709551615, m_impl = L"../src/common/wincmn.cpp(1466): assert \"secondHandler != __null\" failed in PopEventHandler(): the first handler of the wxWindow stack should have non-NULL next handler", m_convertedToChar = {m_str = 0x5555574a5480 "../src/common/wincmn.cpp(1466): assert \"secondHandler != __null\" failed in PopEventHandler(): the first handler of the wxWindow stack should have non-NULL next handler", m_len = 167}} s_bNoAsserts = false #20 0x00007ffff73fe908 in wxAppConsoleBase::OnAssertFailure (this=<optimized out>, file=<optimized out>, line=1466, func=<optimized out>, cond=<optimized out>, msg=<optimized out>) at ../src/common/appbase.cpp:782 No locals. #21 0x00007ffff78523d0 in wxApp::OnAssertFailure (this=0x555556456540, file=<optimized out>, line=<optimized out>, func=<optimized out>, cond=<optimized out>, msg=<optimized out>) at ../src/gtk/app.cpp:540 No locals. #22 0x00007ffff73ffa85 in wxDefaultAssertHandler (file=..., line=line@entry=1466, func=..., cond=..., msg=...) at ../include/wx/string.h:4179 guard = {m_flag = <optimized out>, m_isInside = <optimized out>} s_bInAssert = 1 #23 0x00007ffff73fa304 in wxOnAssert (file=file@entry=0x7ffff7a967fd "../src/common/wincmn.cpp", line=1466, func=0x7fffffffbbe0 "\260\202=WUU", cond=0x7fffffffbbb0 "", msg=<optimized out>) at ../src/common/appbase.cpp:1170 No locals. #24 0x00007ffff79eca03 in wxWindowBase::PopEventHandler (this=<optimized out>, deleteHandler=<optimized out>) at ../src/common/wincmn.cpp:1460 firstHandler = 0x555556b07630 secondHandler = <optimized out> __FUNCTION__ = {<optimized out> <repeats 16 times>} #25 0x0000555555dc257d in Scrubber::~Scrubber() () No symbol table info available. #26 0x0000555555ada18a in AudacityProject::~AudacityProject() () No symbol table info available. #27 0x00005555559f0c8a in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() () No symbol table info available. #28 0x0000555555b00ae8 in ProjectManager::OnCloseWindow(wxCloseEvent&) () No symbol table info available. #29 0x00007ffff74f226e in wxEvtHandler::ProcessEventIfMatchesId (event=..., handler=<optimized out>, entry=...) at ../src/common/event.cpp:1390 tableId1 = <optimized out> tableId2 = <optimized out> tableId1 = <optimized out> tableId2 = <optimized out> #30 wxEvtHandler::ProcessEventIfMatchesId (entry=..., handler=<optimized out>, event=...) at ../src/common/event.cpp:1365 tableId1 = <optimized out> tableId2 = <optimized out> #31 0x00007ffff74f442a in wxEvtHandler::SearchDynamicEventTable (this=this@entry=0x555556a83e50, event=...) at ../src/common/event.cpp:1749 handler = <optimized out> entry = 0x555556e95fe0 node = {m_ptr = 0x555556b23270} __FUNCTION__ = {<optimized out> <repeats 24 times>} #32 0x00007ffff74f44c0 in wxEvtHandler::TryHereOnly (this=0x555556a83e50, event=...) at ../src/common/event.cpp:1583 No locals. #33 0x00007ffff74f2433 in wxEvtHandler::DoTryChain (this=<optimized out>, event=...) at ../src/common/event.cpp:1552 processInHandlerOnly = {m_event = @0x7fffffffc010, m_handlerToProcessOnlyInOld = <optimized out>} h = 0x555556a83e50 #34 0x00007ffff74f4661 in wxEvtHandler::ProcessEvent (this=0x555556b07630, event=...) at ../src/common/event.cpp:1493 __FUNCTION__ = {<optimized out> <repeats 13 times>} #35 0x00007ffff74f2477 in wxEvtHandler::SafelyProcessEvent (this=<optimized out>, event=...) at ../src/common/event.cpp:1611 No locals. #36 0x00007ffff79e7016 in wxWindowBase::Close (this=0x555556a83e50, force=<optimized out>) at ../src/common/wincmn.cpp:589 event = {<wxEvent> = {<wxObject> = {_vptr.wxObject = 0x555556308050 <vtable for wxCloseEvent+16>, static ms_classInfo = {m_className = 0x7ffff7539138 L"wxObject", m_objectSize = 16, m_objectConstructor = 0x0, m_baseInfo1 = 0x0, m_baseInfo2 = 0x0, static sm_first = 0x555556399000 <AboutDialog::ms_classInfo>, m_next = 0x7ffff759ce60 <wxProcessEvent::ms_classInfo>, static sm_classTable = 0x5555563cd5c0}, m_refData = 0x0}, m_eventObject = 0x555556a83e50, m_eventType = 10177, m_timeStamp = 0, m_id = -2008, m_callbackUserData = 0x0, m_handlerToProcessOnlyIn = 0x555556a83e50, m_propagationLevel = 0, m_propagatedFrom = 0x0, m_skipped = false, m_isCommandEvent = false, m_wasProcessed = true, m_willBeProcessedAgain = false, static ms_classInfo = {m_className = 0x7ffff75389f8 L"wxEvent", m_objectSize = 88, m_objectConstructor = 0x0, m_baseInfo1 = 0x7ffff759d040 <wxObject::ms_classInfo>, m_baseInfo2 = 0x0, static sm_first = 0x555556399000 <AboutDialog::ms_classInfo>, m_next = 0x555556397940 <wxEvtHandler::ms_classInfo>, static sm_classTable = 0x5555563cd5c0}}, m_loggingOff = true, m_veto = false, m_canVeto = true, static ms_classInfo = {m_className = 0x7ffff7aa53f8 L"wxCloseEvent", m_objectSize = 88, m_objectConstructor = 0x7ffff783b2c0 <wxCloseEvent::wxCreateObject()>, m_baseInfo1 = 0x555556397e20 <wxEvent::ms_classInfo>, m_baseInfo2 = 0x0, static sm_first = 0x555556399000 <AboutDialog::ms_classInfo>, m_next = 0x7ffff7bbe400 <wxChildFocusEvent::ms_classInfo>, static sm_classTable = 0x5555563cd5c0}} #37 0x0000555555ba441b in CommandManager::HandleCommandEntry(CommandListEntry const*, std::bitset<64ul>, bool, wxEvent const*) () No symbol table info available. #38 0x0000555555ba47bd in CommandManager::FilterKeyEvent(AudacityProject*, wxKeyEvent const&, bool) () No symbol table info available. #39 0x0000555555a909c9 in EventMonitor::FilterEvent(wxEvent&) () No symbol table info available. #40 0x00007ffff74f4625 in wxEvtHandler::ProcessEvent (this=0x555556c8c400, event=...) at ../src/common/event.cpp:1473 rc = <optimized out> f = 0x55555639e630 __FUNCTION__ = {<optimized out> <repeats 13 times>} #41 0x00007ffff74f2477 in wxEvtHandler::SafelyProcessEvent (this=<optimized out>, event=...) at ../src/common/event.cpp:1611 No locals. #42 0x00007ffff7882f26 in (anonymous namespace)::SendCharHookEvent (win=0x555556c8c400, event=...) at ../src/gtk/window.cpp:903 eventCharHook = {<wxEvent> = {<wxObject> = {_vptr.wxObject = 0x7ffff7b98230 <vtable for wxKeyEvent+16>, static ms_classInfo = {m_className = 0x7ffff7539138 L"wxObject", m_objectSize = 16, m_objectConstructor = 0x0, m_baseInfo1 = 0x0, m_baseInfo2 = 0x0, static sm_first = 0x555556399000 <AboutDialog::ms_classInfo>, m_next = 0x7ffff759ce60 <wxProcessEvent::ms_classInfo>, static sm_classTable = 0x5555563cd5c0}, m_refData = 0x0}, m_eventObject = 0x555556c8c400, m_eventType = 10149, m_timeStamp = 185047186, m_id = 1, m_callbackUserData = 0x0, m_handlerToProcessOnlyIn = 0x0, m_propagationLevel = 2147483647, m_propagatedFrom = 0x0, m_skipped = false, m_isCommandEvent = false, m_wasProcessed = true, m_willBeProcessedAgain = false, static ms_classInfo = {m_className = 0x7ffff75389f8 L"wxEvent", m_objectSize = 88, m_objectConstructor = 0x0, m_baseInfo1 = 0x7ffff759d040 <wxObject::ms_classInfo>, m_baseInfo2 = 0x0, static sm_first = 0x555556399000 <AboutDialog::ms_classInfo>, m_next = 0x555556397940 <wxEvtHandler::ms_classInfo>, static sm_classTable = 0x5555563cd5c0}}, <wxKeyboardState> = {m_controlDown = true, m_shiftDown = false, m_altDown = false, m_metaDown = false}, m_x = -1, m_y = -1, m_keyCode = 87, m_uniChar = 87 L'W', m_rawCode = 119, m_rawFlags = 25, m_allowNext = false, m_hasPosition = false, static ms_classInfo = {m_className = 0x7ffff7aa5238 L"wxKeyEvent", m_objectSize = 120, m_objectConstructor = 0x7ffff783d0a0 <wxKeyEvent::wxCreateObject()>, m_baseInfo1 = 0x555556397e20 <wxEvent::ms_classInfo>, m_baseInfo2 = 0x0, static sm_first = 0x555556399000 <AboutDialog::ms_classInfo>, m_next = 0x7ffff7bbe600 <wxMouseEvent::ms_classInfo>, static sm_classTable = 0x5555563cd5c0}} #43 gtk_window_key_press_callback (gdk_event=0x7fffd00083e0, win=0x555556c8c400) at ../src/gtk/window.cpp:980 ancestor = <optimized out> event = {<wxEvent> = {<wxObject> = {_vptr.wxObject = 0x7ffff7b98230 <vtable for wxKeyEvent+16>, static ms_classInfo = {m_className = 0x7ffff7539138 L"wxObject", m_objectSize = 16, m_objectConstructor = 0x0, m_baseInfo1 = 0x0, m_baseInfo2 = 0x0, static sm_first = 0x555556399000 <AboutDialog::ms_classInfo>, m_next = 0x7ffff759ce60 <wxProcessEvent::ms_classInfo>, static sm_classTable = 0x5555563cd5c0}, m_refData = 0x0}, m_eventObject = 0x555556c8c400, m_eventType = 10151, m_timeStamp = 185047186, m_id = 1, m_callbackUserData = 0x0, m_handlerToProcessOnlyIn = 0x0, m_propagationLevel = 0, m_propagatedFrom = 0x0, m_skipped = false, m_isCommandEvent = false, m_wasProcessed = false, m_willBeProcessedAgain = false, static ms_classInfo = {m_className = 0x7ffff75389f8 L"wxEvent", m_objectSize = 88, m_objectConstructor = 0x0, m_baseInfo1 = 0x7ffff759d040 <wxObject::ms_classInfo>, m_baseInfo2 = 0x0, static sm_first = 0x555556399000 <AboutDialog::ms_classInfo>, m_next = 0x555556397940 <wxEvtHandler::ms_classInfo>, static sm_classTable = 0x5555563cd5c0}}, <wxKeyboardState> = {m_controlDown = true, m_shiftDown = false, m_altDown = false, m_metaDown = false}, m_x = -1, m_y = -1, m_keyCode = 87, m_uniChar = 87 L'W', m_rawCode = 119, m_rawFlags = 25, m_allowNext = false, m_hasPosition = false, static ms_classInfo = {m_className = 0x7ffff7aa5238 L"wxKeyEvent", m_objectSize = 120, m_objectConstructor = 0x7ffff783d0a0 <wxKeyEvent::wxCreateObject()>, m_baseInfo1 = 0x555556397e20 <wxEvent::ms_classInfo>, m_baseInfo2 = 0x0, static sm_first = 0x555556399000 <AboutDialog::ms_classInfo>, m_next = 0x7ffff7bbe600 <wxMouseEvent::ms_classInfo>, static sm_classTable = 0x5555563cd5c0}} ret = false return_after_IM = false eventPrev = {type = GDK_KEY_PRESS, window = 0x555556898c00, send_event = 0 '\000', time = 185047186, state = 4, keyval = 119, length = 1, string = 0x5555564a40b0 "\027", hardware_keycode = 25, group = 0 '\000', is_modifier = 0} __FUNCTION__ = {<optimized out> <repeats 30 times>} #44 0x00007ffff6d1d59b in _gtk_marshal_BOOLEAN__BOXED (closure=0x555556777b20, return_value=0x7fffffffc9d0, n_param_values=<optimized out>, param_values=0x7fffffffca30, invocation_hint=<optimized out>, marshal_data=<optimized out>) at gtkmarshalers.c:83 cc = 0x555556777b20 data1 = 0x555556cafb30 data2 = <optimized out> callback = 0x7ffff78829d0 <gtk_window_key_press_callback(GtkWidget*, GdkEventKey*, wxWindow*)> v_return = <optimized out> __func__ = "_gtk_marshal_BOOLEAN__BOXED" #45 0x00007ffff67cde2a in g_closure_invoke (closure=0x555556777b20, return_value=0x7fffffffc9d0, n_param_values=2, param_values=0x7fffffffca30, invocation_hint=0x7fffffffc9b0) at ../gobject/gclosure.c:810 marshal = 0x7ffff6d1d530 <_gtk_marshal_BOOLEAN__BOXED> marshal_data = 0x0 in_marshal = 0 real_closure = 0x555556777b00 __func__ = "g_closure_invoke" #46 0x00007ffff67f7273 in signal_emit_unlocked_R.isra.0 (node=<optimized out>, detail=detail@entry=0, instance=instance@entry=0x555556cafb30, emission_return=emission_return@entry=0x7fffffffcb50, instance_and_params=instance_and_params@entry=0x7fffffffca30) at ../gobject/gsignal.c:3738 tmp = <optimized out> handler = 0x555556cd4dc0 accumulator = 0x555556498e50 emission = {next = 0x7fffffffceb0, instance = 0x555556cafb30, ihint = {signal_id = 86, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 4} class_closure = <optimized out> hlist = <optimized out> handler_list = 0x555556cd4dc0 return_accu = 0x7fffffffc9d0 accu = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} signal_id = 86 max_sequential_handler_number = 9760 return_value_altered = <optimized out> EMIT_RESTART = <optimized out> #47 0x00007ffff67eaaee in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffcc00) at ../gobject/gsignal.c:3504 return_value = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} error = 0x0 rtype = 20 static_scope = 0 instance_and_params = 0x7fffffffca30 signal_return_type = <optimized out> param_values = 0x7fffffffca48 node = <optimized out> i = <optimized out> n_params = <optimized out> __func__ = "g_signal_emit_valist" #48 0x00007ffff67eb1a3 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3550 var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fffffffcce0, reg_save_area = 0x7fffffffcc20}} #49 0x00007ffff6ce4184 in gtk_widget_event_internal.part.0.lto_priv.0 (widget=0x555556cafb30, event=0x7fffd00083e0) at gtkwidget.c:7808 signal_num = <optimized out> return_val = <optimized out> handled = 0 __func__ = {<optimized out> <repeats 26 times>} #50 0x00007ffff6cf24cb in gtk_window_propagate_key_event (window=window@entry=0x555556496a60, event=event@entry=0x7fffd00083e0) at gtkwindow.c:8223 parent = <optimized out> priv = <optimized out> handled = 0 widget = 0x555556496a60 focus = 0x555556cafb30 __func__ = "gtk_window_propagate_key_event" #51 0x00007ffff78740e9 in wxgtk_tlw_key_press_event (widget=widget@entry=0x555556496a60, event=0x7fffd00083e0) at ../src/gtk/toplevel.cpp:229 window = 0x555556496a60 parent_class = <optimized out> #52 0x00007ffff6d1d59b in _gtk_marshal_BOOLEAN__BOXED (closure=0x555556a95d80, return_value=0x7fffffffcee0, n_param_values=<optimized out>, param_values=0x7fffffffcf40, invocation_hint=<optimized out>, marshal_data=<optimized out>) at gtkmarshalers.c:83 cc = 0x555556a95d80 data1 = 0x555556496a60 data2 = <optimized out> callback = 0x7ffff78740c0 <wxgtk_tlw_key_press_event(GtkWidget*, GdkEventKey*)> v_return = <optimized out> __func__ = "_gtk_marshal_BOOLEAN__BOXED" #53 0x00007ffff67cde2a in g_closure_invoke (closure=0x555556a95d80, return_value=0x7fffffffcee0, n_param_values=2, param_values=0x7fffffffcf40, invocation_hint=0x7fffffffcec0) at ../gobject/gclosure.c:810 marshal = 0x7ffff6d1d530 <_gtk_marshal_BOOLEAN__BOXED> marshal_data = 0x0 in_marshal = 0 real_closure = 0x555556a95d60 __func__ = "g_closure_invoke" #54 0x00007ffff67f7273 in signal_emit_unlocked_R.isra.0 (node=<optimized out>, detail=detail@entry=0, instance=instance@entry=0x555556496a60, emission_return=emission_return@entry=0x7fffffffd060, instance_and_params=instance_and_params@entry=0x7fffffffcf40) at ../gobject/gsignal.c:3738 tmp = <optimized out> handler = 0x555556a8a480 accumulator = 0x555556498e50 emission = {next = 0x0, instance = 0x555556496a60, ihint = {signal_id = 86, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 4} class_closure = <optimized out> hlist = <optimized out> handler_list = 0x555556a8a480 return_accu = 0x7fffffffcee0 accu = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} signal_id = 86 max_sequential_handler_number = 9760 return_value_altered = <optimized out> EMIT_RESTART = <optimized out> #55 0x00007ffff67eaaee in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd110) at ../gobject/gsignal.c:3504 return_value = {g_type = 20, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}} error = 0x0 rtype = 20 static_scope = 0 instance_and_params = 0x7fffffffcf40 signal_return_type = <optimized out> param_values = 0x7fffffffcf58 node = <optimized out> i = <optimized out> n_params = <optimized out> __func__ = "g_signal_emit_valist" #56 0x00007ffff67eb1a3 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3550 var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fffffffd1f0, reg_save_area = 0x7fffffffd130}} #57 0x00007ffff6ce4184 in gtk_widget_event_internal.part.0.lto_priv.0 (widget=0x555556496a60, event=0x7fffd00083e0) at gtkwidget.c:7808 signal_num = <optimized out> return_val = <optimized out> handled = 0 __func__ = {<optimized out> <repeats 26 times>} #58 0x00007ffff6b8698f in propagate_event (widget=0x555556496a60, event=0x7fffd00083e0, captured=<optimized out>, topmost=0x0) at gtkmain.c:2680 window = 0x555556496a60 handled_event = <optimized out> propagate_func = <optimized out> #59 0x00007ffff6b87ba3 in gtk_main_do_event (event=0x7fffd00083e0) at gtkmain.c:1920 grab_widget = 0x555556496a60 window_group = 0x5555569f1160 rewritten_event = <optimized out> device = <optimized out> tmp_list = <optimized out> event_widget = <optimized out> topmost_widget = <optimized out> event_widget = <optimized out> grab_widget = <optimized out> topmost_widget = <optimized out> window_group = <optimized out> rewritten_event = <optimized out> device = <optimized out> tmp_list = <optimized out> cleanup = <optimized out> __func__ = {<optimized out> <repeats 18 times>} __inst = <optimized out> __t = <optimized out> __r = <optimized out> window = <optimized out> __inst = <optimized out> __t = <optimized out> __r = <optimized out> __inst = <optimized out> __t = <optimized out> __r = <optimized out> mnemonics_visible = <optimized out> window = <optimized out> __inst = <optimized out> __t = <optimized out> __r = <optimized out> #60 gtk_main_do_event (event=<optimized out>) at gtkmain.c:1690 event_widget = <optimized out> grab_widget = <optimized out> topmost_widget = <optimized out> window_group = <optimized out> rewritten_event = <optimized out> device = <optimized out> tmp_list = <optimized out> cleanup = <optimized out> __func__ = "gtk_main_do_event" __inst = <optimized out> __t = <optimized out> __r = <optimized out> window = <optimized out> __inst = <optimized out> __t = <optimized out> __r = <optimized out> __inst = <optimized out> __t = <optimized out> __r = <optimized out> mnemonics_visible = <optimized out> window = <optimized out> __inst = <optimized out> __t = <optimized out> __r = <optimized out> #61 0x00007ffff6874043 in _gdk_event_emit (event=0x7fffd00083e0) at gdkevents.c:73 No locals. #62 _gdk_event_emit (event=0x7fffd00083e0) at gdkevents.c:67 No locals. #63 0x00007ffff68da172 in gdk_event_source_dispatch (base=base@entry=0x555556491050, callback=<optimized out>, data=<optimized out>) at gdkeventsource.c:124 source = 0x555556491050 display = <optimized out> event = 0x7fffd00083e0 #64 0x00007ffff66dc7ef in g_main_dispatch (context=0x555556476800) at ../glib/gmain.c:3325 dispatch = <optimized out> prev_source = 0x0 begin_time_nsec = 0 was_in_call = <optimized out> user_data = 0x0 callback = 0x0 cb_funcs = 0x0 cb_data = 0x0 need_destroy = <optimized out> source = 0x555556491050 current = 0x555556477920 i = 0 current = <optimized out> i = <optimized out> __func__ = {<optimized out> <repeats 16 times>} source = <optimized out> _g_boolean_var_ = <optimized out> was_in_call = <optimized out> user_data = <optimized out> callback = <optimized out> cb_funcs = <optimized out> cb_data = <optimized out> need_destroy = <optimized out> dispatch = <optimized out> prev_source = <optimized out> begin_time_nsec = <optimized out> _g_boolean_var_ = <optimized out> #65 g_main_context_dispatch (context=0x555556476800) at ../glib/gmain.c:4043 No locals. #66 0x00007ffff672e5d8 in g_main_context_iterate.constprop.0 (context=0x555556476800, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4119 max_priority = 2147483647 timeout = 17 some_ready = 1 nfds = <optimized out> allocated_nfds = <optimized out> fds = 0x5555565c9200 begin_time_nsec = 0 #67 0x00007ffff66dbeb3 in g_main_loop_run (loop=0x5555570ef7a0) at ../glib/gmain.c:4317 self = <optimized out> __func__ = "g_main_loop_run" #68 0x00007ffff6b8320d in gtk_main () at gtkmain.c:1328 loop = 0x5555570ef7a0 #69 0x00007ffff7868835 in wxGUIEventLoop::DoRun (this=0x5555565b9c20) at ../src/gtk/evtloop.cpp:65 loopLevel = 0 #70 0x00007ffff74241bd in wxEventLoopBase::Run (this=0x5555565b9c20) at ../src/common/evtloopcmn.cpp:78 activate = {m_evtLoopOld = 0x0} wxVarSetter75 = <optimized out> __FUNCTION__ = {<optimized out>, <optimized out>, <optimized out>, <optimized out>} #71 0x00007ffff7401d7a in wxAppConsoleBase::MainLoop (this=0x555556456540) at ../src/common/appbase.cpp:334 mainLoop = {<wxEventLoopBasePtr> = {m_ptr = <optimized out>}, m_pp = <optimized out>, m_pOld = <optimized out>} #72 0x00007ffff745c47c in wxEntry (argc=<optimized out>, argv=<optimized out>) at ../src/common/init.cpp:506 callOnExit = {<No data fields>} initializer = {m_ok = <optimized out>} #73 0x00005555559b30f6 in main () No symbol table info available. (gdb)
I have replicated this problem both on my laptop as well as a fresh Fedora 33 VM. When Audacity crashes on closing, an error window will sometimes appear that provides the following information, which seems to match the information in the original report. ASSERT INFO: ../src/common/wincmn.cpp(1466): assert "secondHandler != __null" failed in PopEventHandler(): the first handler of the wxWindow stack should have non-NULL next handler BACKTRACE: [1] wxWindowBase::PopEventHandler(bool) [2] Scrubber::~Scrubber() [3] AudacityProject::~AudacityProject() [4] ProjectManager::OnCloseWindow(wxCloseEvent&) [5] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) [6] wxEvtHandler::SearchDynamicEventTable(wxEvent&) [7] wxEvtHandler::TryHereOnly(wxEvent&) [8] wxEvtHandler::DoTryChain(wxEvent&) [9] wxEvtHandler::ProcessEvent(wxEvent&) [10] wxEvtHandler::SafelyProcessEvent(wxEvent&) [11] wxWindowBase::Close(bool) [12] g_signal_emit_valist [13] g_signal_emit [14] gtk_main_do_event [15] g_main_context_dispatch [16] g_main_loop_run [17] gtk_main [18] wxGUIEventLoop::DoRun() [19] wxEventLoopBase::Run() [20] wxAppConsoleBase::MainLoop() [21] wxEntry(int&, wchar_t**) [22] main [23] __libc_start_main [24] _start
Replicated the issue running KDE Plasma desktop (if this is relevant) both with the stock package and using the RPMFusion freeworld package. audacity killed by SIGSEGV wxEvtHandler::SafelyProcessEvent(wxEvent&) Also xsession_errors (audacity:5531): Gtk-WARNING **: 22:39:56.195: gtk_window_set_titlebar() called on a realized window (audacity:6400): Gtk-WARNING **: 22:45:15.787: gtk_window_set_titlebar() called on a realized window
Created attachment 1764886 [details] Debug report
This happens every time I close either the app or a single project, and it leaks gigabytes of files in Audacity's temp directory (which is not a major problem, now that I know I need to delete them manually). I've attached a debug report.
This message is a reminder that Fedora 33 is nearing its end of life. Fedora will stop maintaining and issuing updates for Fedora 33 on 2021-11-30. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as EOL if it remains open with a Fedora 'version' of '33'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version. Thank you for reporting this issue and we are sorry that we were not able to fix it before Fedora 33 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora, you are encouraged change the 'version' to a later Fedora version prior this bug is closed as described in the policy above. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete.
Fedora 33 changed to end-of-life (EOL) status on 2021-11-30. Fedora 33 is no longer maintained, which means that it will not receive any further security or bug fix updates. As a result we are closing this bug. If you can reproduce this bug against a currently maintained version of Fedora please feel free to reopen this bug against that version. If you are unable to reopen this bug, please file a new report against the current release. If you experience problems, please add a comment to this bug. Thank you for reporting this bug and we are sorry it could not be fixed.