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

Reply via email to