Re: pgadmin crash on refresh

From: Dave Page <dpage(at)pgadmin(dot)org>
To: Magnus Hagander <magnus(at)hagander(dot)net>
Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: pgadmin crash on refresh
Date: 2011-01-19 13:55:25
Message-ID: AANLkTi=YBEjQwz2HCppj_Kv8TvHdC0e4JFvxjOTL_e6d@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

On Wed, Jan 19, 2011 at 12:18 PM, Magnus Hagander <magnus(at)hagander(dot)net> wrote:
> Opened database->catalogs->pg_catalogs->tables. Right click + refresh = crash.
>
> Don't have time to dig in right now myself, but here's a backtrace if
> somebody wants to get started, or perhaps has a clue what it could
> be...
>
> this is with  current git master tip, debugging enabled.

Hmm, can't reproduce it on Windows. It does look an awful lot like
this though: http://git.postgresql.org/gitweb?p=pgadmin3.git;a=commit;h=9ec6b29fe3fbd9cc196d5e91b55f3697f02bcad8

That backtrace looks kinda funky too - I think the EndMsg() call must
be triggering a redraw of everything. The workaround will probably
have to be done in frmMain::Refresh.

> ASSERT INFO:
> ../src/generic/treectlg.cpp(201): assert "m_heightText != -1" failed
> in GetTextHeight(): must call CalculateSize() first
>
> BACKTRACE:
> [1] wxGenericTreeCtrl::PaintLevel(wxGenericTreeItem*, wxDC&, int, int&)
> [2] wxGenericTreeCtrl::PaintLevel(wxGenericTreeItem*, wxDC&, int, int&)
> [3] wxGenericTreeCtrl::PaintLevel(wxGenericTreeItem*, wxDC&, int, int&)
> [4] wxGenericTreeCtrl::PaintLevel(wxGenericTreeItem*, wxDC&, int, int&)
> [5] wxGenericTreeCtrl::PaintLevel(wxGenericTreeItem*, wxDC&, int, int&)
> [6] wxGenericTreeCtrl::PaintLevel(wxGenericTreeItem*, wxDC&, int, int&)
> [7] wxGenericTreeCtrl::PaintLevel(wxGenericTreeItem*, wxDC&, int, int&)
> [8] wxGenericTreeCtrl::PaintLevel(wxGenericTreeItem*, wxDC&, int, int&)
> [9] wxGenericTreeCtrl::PaintLevel(wxGenericTreeItem*, wxDC&, int, int&)
> [10] wxGenericTreeCtrl::OnPaint(wxPaintEvent&)
> [11] wxAppConsole::HandleEvent(wxEvtHandler*, void
> (wxEvtHandler::*)(wxEvent&), wxEvent&) cons)
> [12] wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&,
> wxEvtHandler*, wxEvent&)
> [13] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
> [14] wxEvtHandler::ProcessEvent(wxEvent&)
> [15] wxEvtHandler::ProcessEvent(wxEvent&)
> [16] wxScrollHelperEvtHandler::ProcessEvent(wxEvent&)
> [17] wxWindow::GtkSendPaintEvents()
> [18] g_closure_invoke()
> [19] g_signal_emit_valist()
> [20] g_signal_emit()
> [21] gtk_main_do_event()
> [22] gdk_window_process_updates()
> [23] wxWindow::GtkUpdate()
> [24] wxWindow::Update()
> [25] wxStatusBar::SetStatusText(wxString const&, int)
> [26] frmMain::EndMsg(bool)
> /opt/pgsql/pgadmin/pgadmin3/pgadmin/./frm/frmMain.cpp:1246
> [27] frmMain::Refresh(pgObject*)
> /opt/pgsql/pgadmin/pgadmin3/pgadmin/./frm/frmMain.cpp:565
> [28] refreshFactory::StartDialog(frmMain*, pgObject*)
> /opt/pgsql/pgadmin/pgadmin3/pgadmin/./dlg/dlgProperty.cpp:2199
> [29] frmMain::OnAction(wxCommandEvent&)
> /opt/pgsql/pgadmin/pgadmin3/pgadmin/./frm/events.cpp:191
> [30] wxAppConsole::HandleEvent(wxEvtHandler*, void
> (wxEvtHandler::*)(wxEvent&), wxEvent&) cons)
> [31] wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&,
> wxEvtHandler*, wxEvent&)
> [32] wxEvtHandler::SearchDynamicEventTable(wxEvent&)
> [33] wxEvtHandler::ProcessEvent(wxEvent&)
> [34] wxEvtHandler::ProcessEvent(wxEvent&)
> [35] wxWindowBase::TryParent(wxEvent&)
> [36] wxEvtHandler::ProcessEvent(wxEvent&)
> [37] wxEvtHandler::ProcessEvent(wxEvent&)
> [38] wxScrollHelperEvtHandler::ProcessEvent(wxEvent&)
> [39] wxMenuBase::SendEvent(int, int)
> [40] g_cclosure_marshal_VOID__VOID()
> [41] g_closure_invoke()
> [42] g_signal_emit_valist()
> [43] g_signal_emit()
> [44] gtk_widget_activate()
> [45] gtk_menu_shell_activate_item()
> [46] g_closure_invoke()
> [47] g_signal_emit_valist()
> [48] g_signal_emit()
>
>
>
>
> --
>  Magnus Hagander
>  Me: http://www.hagander.net/
>  Work: http://www.redpill-linpro.com/
>
> --
> Sent via pgadmin-hackers mailing list (pgadmin-hackers(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgadmin-hackers
>

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Peter Geoghegan 2011-01-19 18:04:22 Re: wxWidgets 2.9 build
Previous Message Peter Geoghegan 2011-01-19 12:57:16 Re: wxWidgets 2.9 build