------=_Part_3062_5976889.1209339802077
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
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 re****t 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()
------=_Part_3062_5976889.1209339802077
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
<span style="font-family: verdana,sans-serif;">Hi,</span><br
style="font-family: verdana,sans-serif;"><br style="font-family:
verdana,sans-serif;"><span style="font-family: verdana,sans-serif;">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'.</span><br style="font-family: verdana,sans-serif;">
<br style="font-family: verdana,sans-serif;"><span style="font-family:
verdana,sans-serif;">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.</span><br style="font-family:
verdana,sans-serif;">
<br style="font-family: verdana,sans-serif;"><span style="font-family:
verdana,sans-serif;">I tried the condition (thread &
thread->IsRunning) and that fails too. Also (thread->IsAlive())
meets with the same fate.</span> <span style="font-family:
verdana,sans-serif;">How can we check whether the thread is actually
executing something or not, without actually causing a segfault for such
cases ?</span><br style="font-family: verdana,sans-serif;">
<br style="font-family: verdana,sans-serif;"><span style="font-family:
verdana,sans-serif;">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.<br>
<br>Could anyone hint at what is the possible cause / solution to this
issue ? <br>I am using v7237 (1.9 branch).</span><br><br
style="font-family: verdana,sans-serif;"><span style="font-family:
verdana,sans-serif;">Regards,</span><br style="font-family:
verdana,sans-serif;">
<b style="font-family: verdana,sans-serif;">Robins Tharakan</b><br
style="font-family: verdana,sans-serif;"><br style="font-family:
verdana,sans-serif;"><br style="font-family: verdana,sans-serif;"><span
style="font-family: verdana,sans-serif;">DEBUG re****t on one of my
attempts to resolve such crashes.</span><br style="font-family:
verdana,sans-serif;">
<span style="font-family:
verdana,sans-serif;">--------------------------------------------------------</span><br
style="font-family: verdana,sans-serif;"><span style="font-family:
verdana,sans-serif;">ASSERT INFO:</span><br style="font-family:
verdana,sans-serif;">
<span style="font-family:
verdana,sans-serif;">../include/wx/thrimpl.cpp(42): assert
"m_internal" failed in Lock(): wxMutex::Lock(): not
initialized</span><br style="font-family: verdana,sans-serif;"><br
style="font-family: verdana,sans-serif;">
<span style="font-family: verdana,sans-serif;">BACKTRACE:</span><br
style="font-family: verdana,sans-serif;"><span style="font-family:
verdana,sans-serif;">[1] wxThread::IsRunning() cons)</span><br
style="font-family: verdana,sans-serif;">
<span style="font-family: verdana,sans-serif;">[2]
frmEditGrid::OnCellRightClick(wxGridEvent&)
/projects/pgadmin/40_line_numbers_in_sql_view/7/pgadmin/./frm/frmEditGrid.cpp:416</span><br
style="font-family: verdana,sans-serif;">
<span style="font-family: verdana,sans-serif;">[3]
wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&,
wxEvtHandler*, wxEvent&)</span><br style="font-family:
verdana,sans-serif;"><span style="font-family: verdana,sans-serif;">[4]
wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)</span><br
style="font-family: verdana,sans-serif;">
<span style="font-family: verdana,sans-serif;">[5]
wxEvtHandler::ProcessEvent(wxEvent&)</span><br style="font-family:
verdana,sans-serif;"><span style="font-family: verdana,sans-serif;">[6]
wxEvtHandler::ProcessEvent(wxEvent&)</span><br style="font-family:
verdana,sans-serif;">
<span style="font-family: verdana,sans-serif;">[7]
wxWindowBase::TryParent(wxEvent&)</span><br style="font-family:
verdana,sans-serif;"><span style="font-family: verdana,sans-serif;">[8]
wxEvtHandler::ProcessEvent(wxEvent&)</span><br style="font-family:
verdana,sans-serif;">
<span style="font-family: verdana,sans-serif;">[9]
wxEvtHandler::ProcessEvent(wxEvent&)</span><br style="font-family:
verdana,sans-serif;"><span style="font-family: verdana,sans-serif;">[10]
wxScrollHelperEvtHandler::ProcessEvent(wxEvent&)</span><br
style="font-family: verdana,sans-serif;">
<span style="font-family: verdana,sans-serif;">[11] wxGrid::SendEvent(int,
int, int, wxMouseEvent&)</span><br style="font-family:
verdana,sans-serif;"><span style="font-family: verdana,sans-serif;">[12]
wxGrid::ProcessGridCellMouseEvent(wxMouseEvent&)</span><br
style="font-family: verdana,sans-serif;">
<span style="font-family: verdana,sans-serif;">[13]
wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&,
wxEvtHandler*, wxEvent&)</span><br style="font-family:
verdana,sans-serif;"><span style="font-family: verdana,sans-serif;">[14]
wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)</span><br
style="font-family: verdana,sans-serif;">
<span style="font-family: verdana,sans-serif;">[15]
wxEvtHandler::ProcessEvent(wxEvent&)</span><br style="font-family:
verdana,sans-serif;"><span style="font-family: verdana,sans-serif;">[16]
wxWindow::GTKProcessEvent(wxEvent&) cons)</span><br
style="font-family: verdana,sans-serif;">
<span style="font-family: verdana,sans-serif;">[17]
g_closure_invoke()</span><br style="font-family:
verdana,sans-serif;"><span style="font-family: verdana,sans-serif;">[18]
g_signal_emit_valist()</span><br style="font-family: verdana,sans-serif;">
<span style="font-family: verdana,sans-serif;">[19]
g_signal_emit()</span><br style="font-family: verdana,sans-serif;"><span
style="font-family: verdana,sans-serif;">[20]
gtk_propagate_event()</span><br style="font-family: verdana,sans-serif;">
<span style="font-family: verdana,sans-serif;">[21]
gtk_main_do_event()</span><br style="font-family:
verdana,sans-serif;"><span style="font-family: verdana,sans-serif;">[22]
g_main_context_dispatch()</span><br style="font-family:
verdana,sans-serif;">
<span style="font-family: verdana,sans-serif;">[23]
g_main_loop_run()</span><br style="font-family: verdana,sans-serif;"><span
style="font-family: verdana,sans-serif;">[24] gtk_main()</span><br
style="font-family: verdana,sans-serif;">
------=_Part_3062_5976889.1209339802077--


|