On Tue, Oct 21, 2014 at 4:00 PM, janis <ja...@cieti.lv> wrote: >> On Tue, Oct 21, 2014 at 3:14 PM, janis <ja...@cieti.lv> wrote: >> >>> Thanks, but unfortunately the problem remains. Backtrace looks the same: >>> >>> (gdb) bt >> >> Please recompile databases/pgadmin3 with: >> >> $ DEBUG="-ggdb -O0" INSTALL_STRIP= make clean repackage reinstall >> >> And repost the backtrace >> > Here it is:
Please, try the attached patch. Ciao! David
Index: Makefile =================================================================== RCS file: /cvs/ports/databases/pgadmin3/Makefile,v retrieving revision 1.29 diff -u -p -u -p -r1.29 Makefile --- Makefile 30 Apr 2014 14:20:08 -0000 1.29 +++ Makefile 22 Oct 2014 08:47:46 -0000 @@ -3,7 +3,7 @@ COMMENT= administration and development platform for PostgreSQL V= 1.18.1 -REVISION= 0 +REVISION= 1 DISTNAME= pgadmin3-$V CATEGORIES= databases devel Index: patches/patch-pgadmin_frm_events_cpp =================================================================== RCS file: patches/patch-pgadmin_frm_events_cpp diff -N patches/patch-pgadmin_frm_events_cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-pgadmin_frm_events_cpp 22 Oct 2014 08:47:46 -0000 @@ -0,0 +1,28 @@ +$OpenBSD$ +--- pgadmin/frm/events.cpp.orig Fri Sep 27 16:51:46 2013 ++++ pgadmin/frm/events.cpp Wed Oct 22 10:33:21 2014 +@@ -418,9 +418,11 @@ void frmMain::execSelChange(wxTreeItemId item, bool cu + // + // Lock the assignment to prevent the race conditions between onSelRightClick and execSelChange. + // +- s_currentObjectMutex.Lock(); +- currentObject = browser->GetObject(item); +- s_currentObjectMutex.Unlock(); ++ if(s_currentObjectMutex.TryLock() == wxMUTEX_NO_ERROR) ++ { ++ currentObject = browser->GetObject(item); ++ s_currentObjectMutex.Unlock(); ++ } + + // If we didn't get an object, then we may have a right click, or + // invalid click, so ignore. +@@ -744,7 +746,8 @@ void frmMain::OnSelRightClick(wxTreeEvent &event) + // + s_currentObjectMutex.Lock(); + currentObject = browser->GetObject(item); +- } ++ } else ++ s_currentObjectMutex.Lock(); + + if (currentObject) + doPopup(browser, event.GetPoint(), currentObject);