Skip site navigation (1)
Skip section navigation (2)
frmEditGrid Crash testcase
Hi,When we right click on the last row of a grid with very few rows (about 10-20), the application crashes to a halt with 'segmentation fault'.
I am unable to find a good solution, but of what I understand, thread->IsRunning() fails when the thread is not actually running. Oddly, this happens only for small tables and not for those containing greater than ... say 50-100 rows.
I tried the condition (thread & thread->IsRunning) and that fails too. Also (thread->IsAlive()) meets with the same fate. How can we check whether the thread is actually executing something or not, without actually causing a segfault for such cases ?
If we remove this check altogether, this problem obviously gets resolved, but of course, pgAdmin would then certainly crash if the user requests two table refreshes back-to-back in quick succession.
Could anyone hint at what is the possible cause / solution to this issue ?
I am using v7237 (1.9 branch).Regards,
Robins TharakanDEBUG report on one of my attempts to resolve such crashes.
--------------------------------------------------------ASSERT INFO:
../include/wx/thrimpl.cpp(42): assert "m_internal" failed in Lock(): wxMutex::Lock(): not initialized
BACKTRACE:[1] wxThread::IsRunning() cons)
[2] frmEditGrid::OnCellRightClick(wxGridEvent&) /projects/pgadmin/40_line_numbers_in_sql_view/7/pgadmin/./frm/frmEditGrid.cpp:416
[3] wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)[4] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[5] wxEvtHandler::ProcessEvent(wxEvent&)[6] wxEvtHandler::ProcessEvent(wxEvent&)
[7] wxWindowBase::TryParent(wxEvent&)[8] wxEvtHandler::ProcessEvent(wxEvent&)
[9] wxEvtHandler::ProcessEvent(wxEvent&)[10] wxScrollHelperEvtHandler::ProcessEvent(wxEvent&)
[11] wxGrid::SendEvent(int, int, int, wxMouseEvent&)[12] wxGrid::ProcessGridCellMouseEvent(wxMouseEvent&)
[13] wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)[14] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[15] wxEvtHandler::ProcessEvent(wxEvent&)[16] wxWindow::GTKProcessEvent(wxEvent&) cons)
[17] g_closure_invoke()[18] g_signal_emit_valist()
[19] g_signal_emit()[20] gtk_propagate_event()
[21] gtk_main_do_event()[22] g_main_context_dispatch()
[23] g_main_loop_run()[24] gtk_main()
Home |
Main Index |
Thread Index