Обсуждение: Bug report: pgadmin3-1.10.0 segmentation fault
Hello, I'm using pgadmin-3.1.10.0 on Ubuntu. When closing a particular table view (which appears to be nothing special apart from being empty) I get a segmentation fault. Backtrace is: Program received signal SIGSEGV, Segmentation fault. 0x0102de0c in wxWindow::IsDoubleBuffered() const () from /usr/lib/libwx_gtk2u_core-2.8.so.0 (gdb) bt #0 0x0102de0c in wxWindow::IsDoubleBuffered() const () from /usr/lib/libwx_gtk2u_core-2.8.so.0 #1 0x081da089 in frmEditGrid::Go() () #2 0x081e84fd in editGridFactoryBase::ViewData(frmMain*, pgObject*, bool) () #3 0x081e8757 in editGridFactory::StartDialog(frmMain*, pgObject*) () #4 0x081b9fd4 in frmMain::OnAction(wxCommandEvent&) () #5 0x00530a9f in wxAppConsole::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&), wxEvent&) const () from /usr/lib/libwx_baseu-2.8.so.0 #6 0x005cf379 in wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0 #7 0x005cf508 in wxEvtHandler::SearchDynamicEventTable(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0 #8 0x005d04f5 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0 #9 0x005d04b9 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0 #10 0x0113ade2 in wxWindowBase::TryParent(wxEvent&) () from /usr/lib/libwx_gtk2u_core-2.8.so.0 #11 0x005d04c9 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/lib/libwx_baseu-2.8.so.0 #12 0x0113103e in wxToolBarBase::OnLeftClick(int, bool) () from /usr/lib/libwx_gtk2u_core-2.8.so.0 #13 0x010a3e8d in ?? () from /usr/lib/libwx_gtk2u_core-2.8.so.0 #14 0x008209fc in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #15 0x00813072 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #16 0x008287a8 in ?? () from /usr/lib/libgobject-2.0.so.0 #17 0x00829b2d in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #18 0x00829fb6 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #19 0x02d4588a in gtk_button_clicked () from /usr/lib/libgtk-x11-2.0.so.0 #20 0x02d46ea8 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #21 0x008209fc in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #22 0x008116f9 in ?? () from /usr/lib/libgobject-2.0.so.0 #23 0x00813072 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #24 0x008280b0 in ?? () from /usr/lib/libgobject-2.0.so.0 #25 0x00829b2d in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #26 0x00829fb6 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #27 0x02d4592a in gtk_button_released () from /usr/lib/libgtk-x11-2.0.so.0 #28 0x02d45963 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #29 0x02e05474 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #30 0x008116f9 in ?? () from /usr/lib/libgobject-2.0.so.0 #31 0x00813072 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #32 0x0082849e in ?? () from /usr/lib/libgobject-2.0.so.0 #33 0x008299b8 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #34 0x00829fb6 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #35 0x02f2196e in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #36 0x02dfdc20 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0 #37 0x02dfeea9 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0 #38 0x00c8762a in ?? () from /usr/lib/libgdk-x11-2.0.so.0 #39 0x072fbe78 in g_main_context_dispatch () from /lib/libglib-2.0.so.0 #40 0x072ff720 in ?? () from /lib/libglib-2.0.so.0 #41 0x072ffb8f in g_main_loop_run () from /lib/libglib-2.0.so.0 #42 0x02dff419 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #43 0x0101cc78 in wxEventLoop::Run() () from /usr/lib/libwx_gtk2u_core-2.8.so.0 #44 0x010afe3e in wxAppBase::MainLoop() () from /usr/lib/libwx_gtk2u_core-2.8.so.0 #45 0x010afa31 in wxAppBase::OnRun() () from /usr/lib/libwx_gtk2u_core-2.8.so.0 #46 0x0056a7aa in wxEntry(int&, wchar_t**) () from /usr/lib/libwx_baseu-2.8.so.0 #47 0x0056a987 in wxEntry(int&, char**) () from /usr/lib/libwx_baseu-2.8.so.0 #48 0x0807cc0b in main ()
2nd post... The table is actually big, I just mistook it for being small since it takes several minutes to load. I think the problem is a race condition. The window status bar shows "Refreshing data, please wait.", during which time I close the window and get a segmentation fault. If I wait for the data to load and then close the window, then there is no segmentation fault. Here's a backtrace with line numbers: Program received signal SIGSEGV, Segmentation fault. wxWindowBase::DoUpdateWindowUI (this=0x8e05d58, event=...) at ../src/common/wincmn.cpp:2212 2212 ../src/common/wincmn.cpp: No such file or directory. in ../src/common/wincmn.cpp (gdb) bt #0 wxWindowBase::DoUpdateWindowUI (this=0x8e05d58, event=...) at ../src/common/wincmn.cpp:2212 #1 0x01124ddc in wxTopLevelWindowBase::DoUpdateWindowUI (this=0x8e05d58, event=...) at ../src/common/toplvcmn.cpp:406 #2 0x00ff5272 in wxTopLevelWindowBase::DoGetScreenPosition (this=0x8e05d58, x=0x73, y=0x1) at ../include/wx/toplevel.h:273 #3 0x081b9e04 in frmEditGrid::Go (this=0x8e01c30) at ./frm/frmEditGrid.cpp:1295 #4 0x081b9212 in frmEditGrid::ShowForm (this=0x8e01c30, filter=false) at ./frm/frmEditGrid.cpp:1194 #5 0x081c47f7 in editGridFactoryBase::ViewData (this=0x8d463b8, form=0x8895418, obj=0x8e31600, filter=false) at ./frm/frmEditGrid.cpp:3050 #6 0x081c4c17 in editGridFactory::StartDialog (this=0x8d463b8, form=0x8895418, obj=0x8e31600) at ./frm/frmEditGrid.cpp:3067 #7 0x0819bb6d in frmMain::OnAction (this=0x8895418, ev=...) at ./frm/events.cpp:147 #8 0x008172cf in wxAppConsole::HandleEvent (this=0x8784450, handler=0x8895418, func=0x8e05d58, event=...) at ../src/common/appbase.cpp:322 #9 0x008d5999 in wxEvtHandler::ProcessEventIfMatches (entry=..., handler=0x8895418, event=...) at ../src/common/event.cpp:1231 #10 0x008d5cf8 in wxEvtHandler::SearchDynamicEventTable (this=0x8895418, event=...) at ../src/common/event.cpp:1413 #11 0x008d7215 in wxEvtHandler::ProcessEvent (this=0x8895418, event=...) at ../src/common/event.cpp:1289 #12 0x008d71d9 in wxEvtHandler::ProcessEvent (this=0x8895634, event=...) at ../src/common/event.cpp:1300 #13 0x0112a9b9 in wxWindowBase::TryParent (this=0x8d21608, event=...) at ../src/common/wincmn.cpp:2661 #14 0x008d71e9 in wxEvtHandler::ProcessEvent (this=0x8d21608, event=...) at ../src/common/event.cpp:1306 #15 0x011204be in wxToolBarBase::OnLeftClick (this=0x8d21608, id=1250, toggleDown=false) at ../src/common/tbarbase.cpp:596 #16 0x01085d1d in gtk_toolbar_callback (widget=0x8807a00, tool=0x8d46da8) at ../src/gtk/tbargtk.cpp:197 #17 0x00b989fc in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #18 0x00b8b072 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #19 0x00ba07a8 in ?? () from /usr/lib/libgobject-2.0.so.0 #20 0x00ba1b2d in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #21 0x00ba1fb6 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #22 0x06cd988a in gtk_button_clicked () from /usr/lib/libgtk-x11-2.0.so.0 #23 0x06cdaea8 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #24 0x00b989fc in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0 #25 0x00b896f9 in ?? () from /usr/lib/libgobject-2.0.so.0 #26 0x00b8b072 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #27 0x00ba00b0 in ?? () from /usr/lib/libgobject-2.0.so.0 #28 0x00ba1b2d in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #29 0x00ba1fb6 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #30 0x06cd992a in gtk_button_released () from /usr/lib/libgtk-x11-2.0.so.0 #31 0x06cd9963 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #32 0x06d99474 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #33 0x00b896f9 in ?? () from /usr/lib/libgobject-2.0.so.0 #34 0x00b8b072 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 #35 0x00ba049e in ?? () from /usr/lib/libgobject-2.0.so.0 #36 0x00ba19b8 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 #37 0x00ba1fb6 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 #38 0x06eb596e in ?? () from /usr/lib/libgtk-x11-2.0.so.0 #39 0x06d91c20 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0 #40 0x06d92ea9 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0 #41 0x00d2962a in ?? () from /usr/lib/libgdk-x11-2.0.so.0 #42 0x013e6e78 in g_main_context_dispatch () from /lib/libglib-2.0.so.0 #43 0x013ea720 in ?? () from /lib/libglib-2.0.so.0 #44 0x013eab8f in g_main_loop_run () from /lib/libglib-2.0.so.0 #45 0x06d93419 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 #46 0x00ff1ec8 in wxEventLoop::Run (this=0x88073f0) at ../src/gtk/evtloop.cpp:76 #47 0x010932ac in wxAppBase::MainLoop (this=0x8784450) at ../src/common/appcmn.cpp:312 #48 0x01093001 in wxAppBase::OnRun (this=0x8e05d58) at ../src/common/appcmn.cpp:367 #49 0x0085f3ea in wxEntry (argc=@0x9596ac, argv=0x8772ae8) at ../src/common/init.cpp:460 #50 0x0085f497 in wxEntry (argc=@0xbffff250, argv=0xbffff2f4) at ../src/common/init.cpp:472 #51 0x0807dc43 in main (argc=1, argv=0xbffff2f4) at ./pgAdmin3.cpp:113
Thanks - I've committed a fix for this to SVN. Regards, Dave. On Tue, Nov 24, 2009 at 4:39 PM, Chris Bainbridge <chris.bainbridge@gmail.com> wrote: > 2nd post... > > The table is actually big, I just mistook it for being small since it > takes several minutes to load. I think the problem is a race > condition. The window status bar shows "Refreshing data, please > wait.", during which time I close the window and get a segmentation > fault. If I wait for the data to load and then close the window, then > there is no segmentation fault. Here's a backtrace with line numbers: > > Program received signal SIGSEGV, Segmentation fault. > wxWindowBase::DoUpdateWindowUI (this=0x8e05d58, event=...) at > ../src/common/wincmn.cpp:2212 > 2212 ../src/common/wincmn.cpp: No such file or directory. > in ../src/common/wincmn.cpp > (gdb) bt > #0 wxWindowBase::DoUpdateWindowUI (this=0x8e05d58, event=...) at > ../src/common/wincmn.cpp:2212 > #1 0x01124ddc in wxTopLevelWindowBase::DoUpdateWindowUI > (this=0x8e05d58, event=...) > at ../src/common/toplvcmn.cpp:406 > #2 0x00ff5272 in wxTopLevelWindowBase::DoGetScreenPosition > (this=0x8e05d58, x=0x73, y=0x1) > at ../include/wx/toplevel.h:273 > #3 0x081b9e04 in frmEditGrid::Go (this=0x8e01c30) at ./frm/frmEditGrid.cpp:1295 > #4 0x081b9212 in frmEditGrid::ShowForm (this=0x8e01c30, filter=false) > at ./frm/frmEditGrid.cpp:1194 > #5 0x081c47f7 in editGridFactoryBase::ViewData (this=0x8d463b8, > form=0x8895418, obj=0x8e31600, > filter=false) at ./frm/frmEditGrid.cpp:3050 > #6 0x081c4c17 in editGridFactory::StartDialog (this=0x8d463b8, > form=0x8895418, obj=0x8e31600) > at ./frm/frmEditGrid.cpp:3067 > #7 0x0819bb6d in frmMain::OnAction (this=0x8895418, ev=...) at > ./frm/events.cpp:147 > #8 0x008172cf in wxAppConsole::HandleEvent (this=0x8784450, > handler=0x8895418, func=0x8e05d58, event=...) > at ../src/common/appbase.cpp:322 > #9 0x008d5999 in wxEvtHandler::ProcessEventIfMatches (entry=..., > handler=0x8895418, event=...) > at ../src/common/event.cpp:1231 > #10 0x008d5cf8 in wxEvtHandler::SearchDynamicEventTable > (this=0x8895418, event=...) > at ../src/common/event.cpp:1413 > #11 0x008d7215 in wxEvtHandler::ProcessEvent (this=0x8895418, > event=...) at ../src/common/event.cpp:1289 > #12 0x008d71d9 in wxEvtHandler::ProcessEvent (this=0x8895634, > event=...) at ../src/common/event.cpp:1300 > #13 0x0112a9b9 in wxWindowBase::TryParent (this=0x8d21608, event=...) > at ../src/common/wincmn.cpp:2661 > #14 0x008d71e9 in wxEvtHandler::ProcessEvent (this=0x8d21608, > event=...) at ../src/common/event.cpp:1306 > #15 0x011204be in wxToolBarBase::OnLeftClick (this=0x8d21608, id=1250, > toggleDown=false) > at ../src/common/tbarbase.cpp:596 > #16 0x01085d1d in gtk_toolbar_callback (widget=0x8807a00, > tool=0x8d46da8) at ../src/gtk/tbargtk.cpp:197 > #17 0x00b989fc in g_cclosure_marshal_VOID__VOID () from > /usr/lib/libgobject-2.0.so.0 > #18 0x00b8b072 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 > #19 0x00ba07a8 in ?? () from /usr/lib/libgobject-2.0.so.0 > #20 0x00ba1b2d in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 > #21 0x00ba1fb6 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 > #22 0x06cd988a in gtk_button_clicked () from /usr/lib/libgtk-x11-2.0.so.0 > #23 0x06cdaea8 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 > #24 0x00b989fc in g_cclosure_marshal_VOID__VOID () from > /usr/lib/libgobject-2.0.so.0 > #25 0x00b896f9 in ?? () from /usr/lib/libgobject-2.0.so.0 > #26 0x00b8b072 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 > #27 0x00ba00b0 in ?? () from /usr/lib/libgobject-2.0.so.0 > #28 0x00ba1b2d in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 > #29 0x00ba1fb6 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 > #30 0x06cd992a in gtk_button_released () from /usr/lib/libgtk-x11-2.0.so.0 > #31 0x06cd9963 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 > #32 0x06d99474 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 > #33 0x00b896f9 in ?? () from /usr/lib/libgobject-2.0.so.0 > #34 0x00b8b072 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 > #35 0x00ba049e in ?? () from /usr/lib/libgobject-2.0.so.0 > #36 0x00ba19b8 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 > #37 0x00ba1fb6 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 > #38 0x06eb596e in ?? () from /usr/lib/libgtk-x11-2.0.so.0 > #39 0x06d91c20 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0 > #40 0x06d92ea9 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0 > #41 0x00d2962a in ?? () from /usr/lib/libgdk-x11-2.0.so.0 > #42 0x013e6e78 in g_main_context_dispatch () from /lib/libglib-2.0.so.0 > #43 0x013ea720 in ?? () from /lib/libglib-2.0.so.0 > #44 0x013eab8f in g_main_loop_run () from /lib/libglib-2.0.so.0 > #45 0x06d93419 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 > #46 0x00ff1ec8 in wxEventLoop::Run (this=0x88073f0) at ../src/gtk/evtloop.cpp:76 > #47 0x010932ac in wxAppBase::MainLoop (this=0x8784450) at > ../src/common/appcmn.cpp:312 > #48 0x01093001 in wxAppBase::OnRun (this=0x8e05d58) at > ../src/common/appcmn.cpp:367 > #49 0x0085f3ea in wxEntry (argc=@0x9596ac, argv=0x8772ae8) at > ../src/common/init.cpp:460 > #50 0x0085f497 in wxEntry (argc=@0xbffff250, argv=0xbffff2f4) at > ../src/common/init.cpp:472 > #51 0x0807dc43 in main (argc=1, argv=0xbffff2f4) at ./pgAdmin3.cpp:113 > > -- > Sent via pgadmin-support mailing list (pgadmin-support@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgadmin-support > -- Dave Page EnterpriseDB UK: http://www.enterprisedb.com