pgadmin crash on refresh

Lists: pgadmin-hackers
From: Magnus Hagander <magnus(at)hagander(dot)net>
To: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: pgadmin crash on refresh
Date: 2011-01-19 12:18:39
Message-ID: AANLkTikXtBMUFFa3qTksfEd+zD0NKFv8fKQG+VHr3f-+@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgadmin-hackers

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.

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/


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
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


From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Dave Page <dpage(at)pgadmin(dot)org>
Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: pgadmin crash on refresh
Date: 2011-01-21 12:20:13
Message-ID: AANLkTinyyLdA+5i7jqByn13QG7evjQ5n3QmZjZa6xh7-@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgadmin-hackers

On Wed, Jan 19, 2011 at 14:55, Dave Page <dpage(at)pgadmin(dot)org> wrote:
> 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

Oh, additional point: you need to actually *expand* the tables node,
or it doesn't crash. Did you by any chance not do that?

> this though: http://git.postgresql.org/gitweb?p=pgadmin3.git;a=commit;h=9ec6b29fe3fbd9cc196d5e91b55f3697f02bcad8

Nope. I reverted that patch (well, due to the style patch i couldn't,
but i commented out that one line it seems to add) and it still
crashes for me.

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


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-21 12:35:58
Message-ID: AANLkTinwtd4zYLfhJp6pU+dW2OxCtC9-fyHfFtYD=UQj@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgadmin-hackers

On Fri, Jan 21, 2011 at 12:20 PM, Magnus Hagander <magnus(at)hagander(dot)net> wrote:
> On Wed, Jan 19, 2011 at 14:55, Dave Page <dpage(at)pgadmin(dot)org> wrote:
>> 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
>
> Oh, additional point: you need to actually *expand* the tables node,
> or it doesn't crash. Did you by any chance not do that?

I did do that.

>> this though: http://git.postgresql.org/gitweb?p=pgadmin3.git;a=commit;h=9ec6b29fe3fbd9cc196d5e91b55f3697f02bcad8
>
> Nope. I reverted that patch (well, due to the style patch i couldn't,
> but i commented out that one line it seems to add) and it still
> crashes for me.

There's little chance that that patch would cause (or fix) the problem
you see - but a similar patch in a different place might be the fix.

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

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


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

On Fri, Jan 21, 2011 at 13:35, Dave Page <dpage(at)pgadmin(dot)org> wrote:
> On Fri, Jan 21, 2011 at 12:20 PM, Magnus Hagander <magnus(at)hagander(dot)net> wrote:
>> On Wed, Jan 19, 2011 at 14:55, Dave Page <dpage(at)pgadmin(dot)org> wrote:
>>> 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
>>
>> Oh, additional point: you need to actually *expand* the tables node,
>> or it doesn't crash. Did you by any chance not do that?
>
> I did do that.
>
>>> this though: http://git.postgresql.org/gitweb?p=pgadmin3.git;a=commit;h=9ec6b29fe3fbd9cc196d5e91b55f3697f02bcad8
>>
>> Nope. I reverted that patch (well, due to the style patch i couldn't,
>> but i commented out that one line it seems to add) and it still
>> crashes for me.
>
> There's little chance that that patch would cause (or fix) the problem
> you see - but a similar patch in a different place might be the fix.
>

I've created ticket 299 for this for now, so we don't loose track of it.

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/


From: Guillaume Lelarge <guillaume(at)lelarge(dot)info>
To: Magnus Hagander <magnus(at)hagander(dot)net>
Cc: Dave Page <dpage(at)pgadmin(dot)org>, pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: pgadmin crash on refresh
Date: 2011-01-22 00:19:11
Message-ID: 4D3A227F.1080804@lelarge.info
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgadmin-hackers

Le 21/01/2011 19:36, Magnus Hagander a écrit :
> On Fri, Jan 21, 2011 at 13:35, Dave Page <dpage(at)pgadmin(dot)org> wrote:
>> On Fri, Jan 21, 2011 at 12:20 PM, Magnus Hagander <magnus(at)hagander(dot)net> wrote:
>>> On Wed, Jan 19, 2011 at 14:55, Dave Page <dpage(at)pgadmin(dot)org> wrote:
>>>> 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
>>>
>>> Oh, additional point: you need to actually *expand* the tables node,
>>> or it doesn't crash. Did you by any chance not do that?
>>
>> I did do that.
>>
>>>> this though: http://git.postgresql.org/gitweb?p=pgadmin3.git;a=commit;h=9ec6b29fe3fbd9cc196d5e91b55f3697f02bcad8
>>>
>>> Nope. I reverted that patch (well, due to the style patch i couldn't,
>>> but i commented out that one line it seems to add) and it still
>>> crashes for me.
>>
>> There's little chance that that patch would cause (or fix) the problem
>> you see - but a similar patch in a different place might be the fix.
>>
>
> I've created ticket 299 for this for now, so we don't loose track of it.
>

Thanks Magnus.

--
Guillaume
http://www.postgresql.fr
http://dalibo.com