Re: pgAdmin III: Muliple SQL tabs - Mailing list pgadmin-hackers
From | Neel Patel |
---|---|
Subject | Re: pgAdmin III: Muliple SQL tabs |
Date | |
Msg-id | CACCA4P32pe2OBgAZS0bVREm6q-Z-mm38KGNK27LB=BD-026hTQ@mail.gmail.com Whole thread Raw |
In response to | Re: pgAdmin III: Muliple SQL tabs (Dave Page <dpage@pgadmin.org>) |
Responses |
Re: pgAdmin III: Muliple SQL tabs
|
List | pgadmin-hackers |
Hi ,
I just applied the patch in Linux environment and found the crash. Below are the steps to reproduce.
We may need to perform below steps multiple time to reproduce the crash.
- Open the "Query Window".
- Go to "File" and click on "New SQL tab". Open the 3-4 SQL tabs and execute any query in one SQL tab.
- Go to "File" menu and click on "Exit".
- After clicking on "Exit" button only Query window should close but pgAdmin3 is getting crashed.
Below are the traces for reference.
#0 0x00007ffff6c4fbf3 in wxControlContainer::SetLastFocus(wxWindow*) () from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#1 0x00007ffff6ccb684 in wxPanel::OnChildFocus(wxChildFocusEvent&) () from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#2 0x00007ffff633d9d6 in wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) ()
from /usr/local/lib/libwx_baseu-2.8.so.0
#3 0x00007ffff633da7b in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) () from /usr/local/lib/libwx_baseu-2.8.so.0
#4 0x00007ffff633dde7 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/local/lib/libwx_baseu-2.8.so.0
#5 0x00007ffff633d938 in wxEvtHandler::ProcessPendingEvents() () from /usr/local/lib/libwx_baseu-2.8.so.0
#6 0x00007ffff62bb281 in wxAppConsole::ProcessPendingEvents() () from /usr/local/lib/libwx_baseu-2.8.so.0
#7 0x00007ffff6c4504e in wxAppBase::ProcessIdle() () from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#8 0x00007ffff6bbfe31 in wxapp_idle_callback () from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#9 0x00007ffff366ace5 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007ffff366b048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007ffff366b30a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#12 0x00007ffff4106eb2 in gtk_dialog_run () from /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#13 0x00007ffff6c31aea in wxMessageDialog::ShowModal() () from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#14 0x00000000006b79bf in frmQuery::CheckChanged(bool) ()
#15 0x00000000006a967e in frmQuery::SqlBookClose(bool) ()
#16 0x00000000006b7d1e in frmQuery::OnClose(wxCloseEvent&) ()
#17 0x00007ffff633d9d6 in wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) ()
from /usr/local/lib/libwx_baseu-2.8.so.0
#18 0x00007ffff633da7b in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) () from /usr/local/lib/libwx_baseu-2.8.so.0
#19 0x00007ffff633dde7 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/local/lib/libwx_baseu-2.8.so.0
#20 0x00007ffff633dd70 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/local/lib/libwx_baseu-2.8.so.0
#21 0x00007ffff6cac39c in wxWindowBase::Close(bool) () from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#22 0x00007ffff633d9d6 in wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) ()
from /usr/local/lib/libwx_baseu-2.8.so.0
#23 0x00007ffff633da7b in wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) () from /usr/local/lib/libwx_baseu-2.8.so.0
#24 0x00007ffff633dde7 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/local/lib/libwx_baseu-2.8.so.0
#25 0x00007ffff633dd70 in wxEvtHandler::ProcessEvent(wxEvent&) () from /usr/local/lib/libwx_baseu-2.8.so.0
#26 0x00007ffff6c2f7b5 in gtk_menu_clicked_callback () from /usr/local/lib/libwx_gtk2u_core-2.8.so.0
#27 0x00007ffff3b5b3b8 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
We will check for Mac OS X environment and keep you updated.
Thanks,
Neel Patel
On Fri, Feb 12, 2016 at 8:51 PM, Dave Page <dpage@pgadmin.org> wrote:
On Thu, Feb 11, 2016 at 2:22 PM, Sergey Busel <sbusel@gmail.com> wrote:Added the query name to history entries. Please note that history entries are not modified if user saves [Query 1] to file [foo.sql]. I don't think that would be practical.Thanks. So I was just about to commit this, when it crashed on me. It seems to happen only if there are at least 2 non-dirty tabs open (easy to reproduce - open the query tool, add a second tab, then close the window). I've fiddled around for a couple of hours, but not been able to get to the bottom of it despite trying a few tricks that sometimes help avoid weird issues with wxWidgets. There's a stack trace below.Ashesh, Neel, Sanket, Akshay - can any of you take a quick look on an OSX system? I've attached a slightly cleaned up patch, removing some commented code and making it a git-diff against master.Thanks.Thread 0 Crashed:: Dispatch queue: com.apple.main-thread0 org.postgresql.pgadmin3 0x0036ce4f wxWindowBase::GetParent() const + 15 (window.h:590)1 libwx_macud_core-2.8.0.dylib 0x01ea6c0b wxControlContainer::SetLastFocus(wxWindow*) + 812 libwx_macud_core-2.8.0.dylib 0x01faf8c0 wxPanel::OnChildFocus(wxChildFocusEvent&) + 503 libwx_base_carbonud-2.8.0.dylib 0x0254b984 wxAppConsole::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*)(wxEvent&), wxEvent&) const + 1024 libwx_base_carbonud-2.8.0.dylib 0x02634023 wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) + 3915 libwx_base_carbonud-2.8.0.dylib 0x026364ef wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*) + 2216 libwx_base_carbonud-2.8.0.dylib 0x02635716 wxEvtHandler::ProcessEvent(wxEvent&) + 3887 libwx_base_carbonud-2.8.0.dylib 0x02634bc8 wxEvtHandler::ProcessPendingEvents() + 3028 libwx_base_carbonud-2.8.0.dylib 0x0254c6d8 wxAppConsole::ProcessPendingEvents() + 2329 libwx_base_carbonud-2.8.0.dylib 0x02629ea3 wxMacProcessNotifierAndPendingEvents + 3510 libwx_macud_core-2.8.0.dylib 0x01d6f2c1 wxApp::MacHandleOneEvent(void*) + 9711 libwx_macud_core-2.8.0.dylib 0x01d6f3ce wxApp::MacDoOneEvent() + 24612 libwx_macud_core-2.8.0.dylib 0x01da07fd wxEventLoop::Dispatch() + 5713 libwx_macud_core-2.8.0.dylib 0x01ed46c1 wxEventLoopManual::Run() + 42114 libwx_macud_core-2.8.0.dylib 0x01e885b4 wxAppBase::MainLoop() + 9815 libwx_macud_core-2.8.0.dylib 0x01e87a6a wxAppBase::OnRun() + 5216 libwx_base_carbonud-2.8.0.dylib 0x025ac782 wxEntry(int&, wchar_t**) + 25817 libwx_base_carbonud-2.8.0.dylib 0x025ac96d wxEntry(int&, char**) + 7718 org.postgresql.pgadmin3 0x00128354 main + 36 (pgAdmin3.cpp:126)19 org.postgresql.pgadmin3 0x00106705 start + 53On Wed, Feb 10, 2016 at 8:28 AM, Dave Page <dpage@pgadmin.org> wrote:HiOn Wed, Feb 10, 2016 at 12:14 AM, Sergey Busel <sbusel@gmail.com> wrote:Dave,Here is a patch that does display the query tab name in the title bar of the output pane. It seems to work with loading and saving the perspective, too. The trick is to restore the original text on the output pane before loading and saving the perspective, and put the query name back in there right after.Attached is the full patch, not the diff from the previous patch I sent. Let me know if you have other suggestions.That seems to solve the problem nicely :-) - Thanks!It does lead to one other issue that I can see - the History tab on the results pane now shows the history for all query tabs, which seems a little odd given that the other 3 tabs on the results panel are query tab specific. Unless there are better ideas, I think the best way to fix this is to include the current tab name in the history, e.g.-- Executing query [Query 1]:SELECT version();Total query runtime: 16 msec1 row retrieved.-- Executing query [Query 2]:SELECT * FROM pg_classTotal query runtime: 53 msec311 rows retrieved.-- Executing query [foo.sql]:SELECT * from pg_attributeTotal query runtime: 245 msec2399 rows retrieved.What do you think?Regards.On Fri, Feb 5, 2016 at 7:46 AM, Dave Page <dpage@pgadmin.org> wrote:On Wed, Feb 3, 2016 at 3:07 AM, Sergey Busel <sbusel@gmail.com> wrote:
> - Removed unused/commented code.
> - Tab names now reflect the file name, if such is associated with a tab.
> - Removed the "Close Tab" menu item. Added X button to the active tab.
> - To tell the user which tab results are related to and to avoid messing
> with perspective, the name of the related tab is now displayed as "Data
> Output [Query 1]" in the output pane. If the tab is named after a file, file
> name will display in the square brackets. If the file name is longer then 15
> chars, it will be truncated to 15 chars.
>
> Let me know any other suggestions you may have.
Thanks - this seems to be working nicely for me. It would be good if
the query name could be displayed in the title bar of the output pane
rather than on the results tab (because it really does apply to all
tabs), but I don't see any sensible way to do that given the weird way
that wxAUI stores it's perspectives.
Ashesh, any ideas?
--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company--Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company--Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake
EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
pgadmin-hackers by date: