[ 
https://issues.apache.org/jira/browse/DIRSTUDIO-1039?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14513027#comment-14513027
 ] 

Stefan Seelmann commented on DIRSTUDIO-1039:
--------------------------------------------

I think I found the problem. The search is done in one thread and in another 
thread the connection is closed. When closing the connection in Studio we first 
do an LdapNetworkConnection.unBind() and then an LdapNetworkConnection.close(). 
Maybe that is not the right procedure, but nevertheless an currently running 
SearchCursorImpl.next() blocks. I'll try to create an isolated testcase.

> SWTBot test suite hangs on opening connection
> ---------------------------------------------
>
>                 Key: DIRSTUDIO-1039
>                 URL: https://issues.apache.org/jira/browse/DIRSTUDIO-1039
>             Project: Directory Studio
>          Issue Type: Bug
>          Components: studio-connection
>            Reporter: Stefan Seelmann
>             Fix For: 2.0.0-M9
>
>
> When running the SWTBot test suite it get stuck at some point.
> Evidence:
> * Below is one thread of the thread dump. 
> * The default time limit of a connection in Studio is 0 by default, which in 
> the API is converterted to Long.MAX_VALUE ms. So the ResponseFuture.get() 
> blocks practically forever.
> * This only happens when running the whole test suite, but then it is 
> reproducable. When running only parts of the suite it runs through.
> First steps:
> * I'll try change the default time limit to 30 seconds.
> {noformat}
> "Worker-3" #54 prio=5 os_prio=0 tid=0x00007ff30c01e800 nid=0x61c0 waiting on 
> condition [0x00007ff279819000]
>    java.lang.Thread.State: TIMED_WAITING (parking)
>         at sun.misc.Unsafe.park(Native Method)
>         - parking to wait for  <0x00000000fb861930> (a 
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>         at 
> java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
>         at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
>         at 
> java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
>         at 
> org.apache.directory.ldap.client.api.future.ResponseFuture.get(ResponseFuture.java:130)
>         at 
> org.apache.directory.ldap.client.api.future.SearchFuture.get(SearchFuture.java:69)
>         at 
> org.apache.directory.ldap.client.api.SearchCursorImpl.next(SearchCursorImpl.java:119)
>         at 
> org.apache.directory.studio.connection.core.io.api.CursorStudioNamingEnumeration.hasMore(CursorStudioNamingEnumeration.java:141)
>         at 
> org.apache.directory.studio.ldapbrowser.core.jobs.SearchRunnable.searchAndUpdateModel(SearchRunnable.java:321)
>         at 
> org.apache.directory.studio.ldapbrowser.core.jobs.InitializeRootDSERunnable.initBaseEntry(InitializeRootDSERunnable.java:380)
>         at 
> org.apache.directory.studio.ldapbrowser.core.jobs.InitializeRootDSERunnable.loadRootDSE(InitializeRootDSERunnable.java:310)
>         - locked <0x000000008b304e78> (a java.lang.Class for 
> org.apache.directory.studio.ldapbrowser.core.jobs.InitializeRootDSERunnable)
>         at 
> org.apache.directory.studio.ldapbrowser.core.jobs.InitializeAttributesRunnable.initializeAttributes(InitializeAttributesRunnable.java:226)
>         - locked <0x000000008b3170b8> (a java.lang.Class for 
> org.apache.directory.studio.ldapbrowser.core.jobs.InitializeAttributesRunnable)
>         at 
> org.apache.directory.studio.ldapbrowser.core.jobs.InitializeAttributesRunnable.initializeAttributes(InitializeAttributesRunnable.java:204)
>         - locked <0x000000008b3170b8> (a java.lang.Class for 
> org.apache.directory.studio.ldapbrowser.core.jobs.InitializeAttributesRunnable)
>         at 
> org.apache.directory.studio.ldapbrowser.core.BrowserConnectionListener.openBrowserConnection(BrowserConnectionListener.java:117)
>         at 
> org.apache.directory.studio.ldapbrowser.core.BrowserConnectionListener.connectionOpened(BrowserConnectionListener.java:64)
>         at 
> org.apache.directory.studio.connection.core.jobs.OpenConnectionsRunnable.runNotification(OpenConnectionsRunnable.java:132)
>         at 
> org.apache.directory.studio.connection.core.jobs.StudioConnectionJob.run(StudioConnectionJob.java:115)
>         at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to