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 Tharakan* DEBUG 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()