Bug 18491

Summary: aegisub-3.2.2: crashes when editing style
Product: Mageia Reporter: Christian Apeltauer <c.apeltauer>
Component: RPM PackagesAssignee: David GEIGER <geiger.david68210>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Normal CC: geiger.david68210
Version: Cauldron   
Target Milestone: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Source RPM: CVE:
Status comment:

Description Christian Apeltauer 2016-05-19 20:20:47 CEST
When trying to open a script in the style manager, I get an error message dialog:
An assertion failed!
./src/common/image.cpp(1872): assert "IsOk()" failed in GetData(): invalid image

When clicking on continue, a second dialog with message:
An assertion failed!
./src/gtk/bitmap.cpp(580): assert "image.IsOk()" failed in wxBitmap(): invalid image

When clicking of OK now, aegisub usually crashes, although sometimes the edit dialog is opened after some more failed assertions.
Even when the style is successfully saved, the errors will reoccur when opening the style once again.

The first backtrace is:
ASSERT INFO:
./src/common/image.cpp(1872): assert "IsOk()" failed in GetData(): invalid image

BACKTRACE:
[1] wxOnAssert(char const*, int, char const*, char const*, wchar_t const*)
[2] wxImage::GetData() const
[3] boost::detail::invalid_utf32_code_point(unsigned int)
[4] boost::detail::invalid_utf32_code_point(unsigned int)
[5] boost::detail::invalid_utf32_code_point(unsigned int)
[6] wxAppConsoleBase::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&), wxEvent&) const
[7] agi::EnvironmentError::~EnvironmentError()
[8] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[9] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[10] wxEvtHandler::SearchDynamicEventTable(wxEvent&)
[11] wxEvtHandler::TryHereOnly(wxEvent&)
[12] wxEvtHandler::ProcessEventLocally(wxEvent&)
[13] wxEvtHandler::ProcessEvent(wxEvent&)
[14] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[15] wxWindowBase::HandleWindowEvent(wxEvent&) const
[16] wxWindow::DoSetSize(int, int, int, int, int)
[17] wxSizerItem::SetDimension(wxPoint const&, wxSize const&)
[18] wxBoxSizer::RecalcSizes()
[19] wxStaticBoxSizer::RecalcSizes()
[20] wxSizer::Layout()
[21] wxSizerItem::SetDimension(wxPoint const&, wxSize const&)
[22] wxBoxSizer::RecalcSizes()
[23] wxSizer::Layout()
[24] wxSizerItem::SetDimension(wxPoint const&, wxSize const&)
[25] wxBoxSizer::RecalcSizes()
[26] wxSizer::Layout()
[27] wxSizerItem::SetDimension(wxPoint const&, wxSize const&)
[28] wxBoxSizer::RecalcSizes()
[29] wxSizer::Layout()
[30] wxWindowBase::Layout()
[31] wxTopLevelWindowBase::DoLayout()
[32] wxAppConsoleBase::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&), wxEvent&) const
[33] agi::EnvironmentError::~EnvironmentError()
[34] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[35] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[36] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[37] wxEvtHandler::TryHereOnly(wxEvent&)
[38] wxEvtHandler::ProcessEventLocally(wxEvent&)
[39] wxEvtHandler::ProcessEvent(wxEvent&)
[40] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[41] wxWindowBase::HandleWindowEvent(wxEvent&) const
[42] g_cclosure_marshal_VOID__BOXED
[43] g_closure_invoke
[44] g_signal_emit_valist
[45] g_signal_emit
[46] gtk_widget_size_allocate_with_baseline
[47] gtk_widget_size_allocate_with_baseline
[48] gtk_widget_size_allocate
[49] g_cclosure_marshal_VOID__BOXED
[50] g_closure_invoke
[51] g_signal_emit_valist
[52] g_signal_emit
[53] gtk_widget_size_allocate_with_baseline
[54] gtk_widget_size_allocate
[55] g_cclosure_marshal_VOID__VOIDv
[56] g_signal_emit_valist
[57] g_signal_emit
[58] gtk_container_check_resize
[59] g_cclosure_marshal_VOID__VOID
[60] g_closure_invoke
[61] g_signal_emit_valist
[62] g_signal_emit
[63] gtk_widget_show
[64] wxTopLevelWindowGTK::GTKUpdateDecorSize(wxTopLevelWindowGTK::DecorSize const&)
[65] g_closure_invoke
[66] g_signal_emit_valist
[67] g_signal_emit
[68] gtk_main_do_event
[69] g_main_context_dispatch
[70] g_main_loop_run
[71] gtk_main
[72] wxGUIEventLoop::DoRun()
[73] wxEventLoopBase::Run()
[74] wxDialog::ShowModal()
[75] std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_get_insert_unique_pos(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
[76] std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_get_insert_unique_pos(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
[77] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[78] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[79] wxEvtHandler::SearchDynamicEventTable(wxEvent&)
[80] wxEvtHandler::TryHereOnly(wxEvent&)
[81] wxEvtHandler::ProcessEventLocally(wxEvent&)
[82] wxEvtHandler::ProcessEvent(wxEvent&)
[83] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[84] wxWindowBase::HandleWindowEvent(wxEvent&) const
[85] g_cclosure_marshal_VOID__VOIDv
[86] g_signal_emit_valist
[87] g_signal_emit
[88] gtk_button_clicked
[89] g_cclosure_marshal_VOID__VOID
[90] g_closure_invoke
[91] g_signal_emit_valist
[92] g_signal_emit
[93] ffi_call_SYSV
[94] ffi_call
[95] g_cclosure_marshal_generic_va
[96] g_signal_emit_valist
[97] g_signal_emit
[98] g_cclosure_marshal_VOID__BOXEDv
[99] g_signal_emit_valist
[100] g_signal_emit
[101] gtk_event_controller_handle_event
[102] g_closure_invoke
[103] g_signal_emit_valist
[104] g_signal_emit
[105] gtk_main_do_event
[106] g_main_context_dispatch
[107] g_main_loop_run
[108] gtk_main
[109] wxGUIEventLoop::DoRun()
[110] wxEventLoopBase::Run()
[111] wxAppConsoleBase::MainLoop()
[112] agi::EnvironmentError::~EnvironmentError()
[113] wxEntry(int&, wchar_t**)
[114] wxEntry(int&, char**)
[115] main
[116] __libc_start_main
[117] main

The second backtrace is:
ASSERT INFO:
./src/gtk/bitmap.cpp(580): assert "image.IsOk()" failed in wxBitmap(): invalid image

BACKTRACE:
[1] wxOnAssert(char const*, int, char const*, char const*, char const*)
[2] wxBitmap::wxBitmap(wxImage const&, int)
[3] boost::detail::invalid_utf32_code_point(unsigned int)
[4] boost::detail::invalid_utf32_code_point(unsigned int)
[5] wxAppConsoleBase::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&), wxEvent&) const
[6] agi::EnvironmentError::~EnvironmentError()
[7] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[8] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[9] wxEvtHandler::SearchDynamicEventTable(wxEvent&)
[10] wxEvtHandler::TryHereOnly(wxEvent&)
[11] wxEvtHandler::ProcessEventLocally(wxEvent&)
[12] wxEvtHandler::ProcessEvent(wxEvent&)
[13] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[14] wxWindowBase::HandleWindowEvent(wxEvent&) const
[15] wxWindow::DoSetSize(int, int, int, int, int)
[16] wxSizerItem::SetDimension(wxPoint const&, wxSize const&)
[17] wxBoxSizer::RecalcSizes()
[18] wxStaticBoxSizer::RecalcSizes()
[19] wxSizer::Layout()
[20] wxSizerItem::SetDimension(wxPoint const&, wxSize const&)
[21] wxBoxSizer::RecalcSizes()
[22] wxSizer::Layout()
[23] wxSizerItem::SetDimension(wxPoint const&, wxSize const&)
[24] wxBoxSizer::RecalcSizes()
[25] wxSizer::Layout()
[26] wxSizerItem::SetDimension(wxPoint const&, wxSize const&)
[27] wxBoxSizer::RecalcSizes()
[28] wxSizer::Layout()
[29] wxWindowBase::Layout()
[30] wxTopLevelWindowBase::DoLayout()
[31] wxAppConsoleBase::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&), wxEvent&) const
[32] agi::EnvironmentError::~EnvironmentError()
[33] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[34] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[35] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[36] wxEvtHandler::TryHereOnly(wxEvent&)
[37] wxEvtHandler::ProcessEventLocally(wxEvent&)
[38] wxEvtHandler::ProcessEvent(wxEvent&)
[39] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[40] wxWindowBase::HandleWindowEvent(wxEvent&) const
[41] g_cclosure_marshal_VOID__BOXED
[42] g_closure_invoke
[43] g_signal_emit_valist
[44] g_signal_emit
[45] gtk_widget_size_allocate_with_baseline
[46] gtk_widget_size_allocate_with_baseline
[47] gtk_widget_size_allocate
[48] g_cclosure_marshal_VOID__BOXED
[49] g_closure_invoke
[50] g_signal_emit_valist
[51] g_signal_emit
[52] gtk_widget_size_allocate_with_baseline
[53] gtk_widget_size_allocate
[54] g_cclosure_marshal_VOID__VOIDv
[55] g_signal_emit_valist
[56] g_signal_emit
[57] gtk_container_check_resize
[58] g_cclosure_marshal_VOID__VOID
[59] g_closure_invoke
[60] g_signal_emit_valist
[61] g_signal_emit
[62] gtk_widget_show
[63] wxTopLevelWindowGTK::GTKUpdateDecorSize(wxTopLevelWindowGTK::DecorSize const&)
[64] g_closure_invoke
[65] g_signal_emit_valist
[66] g_signal_emit
[67] gtk_main_do_event
[68] g_main_context_dispatch
[69] g_main_loop_run
[70] gtk_main
[71] wxGUIEventLoop::DoRun()
[72] wxEventLoopBase::Run()
[73] wxDialog::ShowModal()
[74] std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_get_insert_unique_pos(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
[75] std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_get_insert_unique_pos(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
[76] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[77] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[78] wxEvtHandler::SearchDynamicEventTable(wxEvent&)
[79] wxEvtHandler::TryHereOnly(wxEvent&)
[80] wxEvtHandler::ProcessEventLocally(wxEvent&)
[81] wxEvtHandler::ProcessEvent(wxEvent&)
[82] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[83] wxWindowBase::HandleWindowEvent(wxEvent&) const
[84] g_cclosure_marshal_VOID__VOIDv
[85] g_signal_emit_valist
[86] g_signal_emit
[87] gtk_button_clicked
[88] g_cclosure_marshal_VOID__VOID
[89] g_closure_invoke
[90] g_signal_emit_valist
[91] g_signal_emit
[92] ffi_call_SYSV
[93] ffi_call
[94] g_cclosure_marshal_generic_va
[95] g_signal_emit_valist
[96] g_signal_emit
[97] g_cclosure_marshal_VOID__BOXEDv
[98] g_signal_emit_valist
[99] g_signal_emit
[100] gtk_event_controller_handle_event
[101] g_closure_invoke
[102] g_signal_emit_valist
[103] g_signal_emit
[104] gtk_main_do_event
[105] g_main_context_dispatch
[106] g_main_loop_run
[107] gtk_main
[108] wxGUIEventLoop::DoRun()
[109] wxEventLoopBase::Run()
[110] wxAppConsoleBase::MainLoop()
[111] agi::EnvironmentError::~EnvironmentError()
[112] wxEntry(int&, wchar_t**)
[113] wxEntry(int&, char**)
[114] main
[115] __libc_start_main
[116] main
Comment 1 David GEIGER 2016-05-19 20:43:02 CEST
Hi,

Can you please report this issue upstream, please?

aegisub 3.2.2 is a quite old now and upstream has not published a new release yet.

http://devel.aegisub.org/wiki/Bugs

CC: (none) => geiger.david68210
Assignee: bugsquad => geiger.david68210

Comment 2 David GEIGER 2016-05-20 15:46:20 CEST
I have pushed a new release using latest source snapshot from upstream, could you test with this one if it works properly now, please?

- aegisub-3.2.2-14.git20160518.1.mga6
Comment 3 David GEIGER 2016-06-25 13:31:39 CEST
Closing of this bug as there is no response since 1 month and I think it should be fixed with the rebuild against wgtk3 compiled with GTK2.

Feel free to reopen if needed!

Status: NEW => RESOLVED
Resolution: (none) => FIXED