[ https://issues.apache.org/jira/browse/DIRAPI-342?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16835190#comment-16835190 ]
Emmanuel Lecharny commented on DIRAPI-342: ------------------------------------------ Just ran your test on my Mac OS X box, and I can run it more than 500 000 times in the loop before getting an error. Teh onkly thing I have to tune is the tcp TIME_WAIT parameter ({{net.inet.tcp.msl}} which default to 15s, and that I set to 1s (otherwise with the default value, it blocks after 16 000 loops). But this is not a bug: at some point, all the socket are in TIME_WAIT, and the file_descriptor limit is reached on my machine (It's set to 16 000 more or less). There is nothing we can do, and chaningh the TIME_WAIT delay is not reasonnable. On linux, the config for this parameter is given by : {code} cat /proc/sys/net/ipv4/tcp_fin_timeout {code} Which value do you have ? > Unbind breaks connection > ------------------------ > > Key: DIRAPI-342 > URL: https://issues.apache.org/jira/browse/DIRAPI-342 > Project: Directory Client API > Issue Type: Bug > Affects Versions: 2.0.0.AM2 > Reporter: Stefan Seelmann > Priority: Major > Fix For: 2.0.0.AM3, 2.0.0 > > > The DelegatedAuthIT/DelegatedAuthOverSslIT/DelegatedAuthOverTlsIT tests fail > randomly (I try to stabilize tests on Windows, but also happens on Jenkins). > They all do multiple bind() and unbind() on the same connection, it seems the > unbind() is the reason. > A simple test to reproduce the problem (on Linux): > {code} > @Test > public void testSimpleBindAndUnbindLoop() throws Exception > { > try ( LdapConnection connection = new LdapNetworkConnection( > Network.LOOPBACK_HOSTNAME, > getLdapServer().getPort() ) ) > { > for ( int i = 0; i < 10000; i++ ) > { > System.out.println( i ); > connection.bind( "uid=admin,ou=system", "secret" ); > assertTrue( connection.isAuthenticated() ); > connection.unBind(); > assertFalse( connection.isAuthenticated() ); > // Thread.sleep( 10L ); > } > } > } > {code} > Without the unbind() or when sleeping for 10ms it works fine. > Otherwise I saw 3 different errors: > {code} > org.apache.directory.ldap.client.api.exception.InvalidConnectionException: > ERR_04108_INVALID_CONNECTION Cannot connect on the server, the connection is > invalid > at > org.apache.directory.ldap.client.api.LdapNetworkConnection.checkSession(LdapNetworkConnection.java:574) > at > org.apache.directory.ldap.client.api.LdapNetworkConnection.bindAsync(LdapNetworkConnection.java:1596) > at > org.apache.directory.ldap.client.api.LdapNetworkConnection.bind(LdapNetworkConnection.java:1488) > at > org.apache.directory.ldap.client.api.AbstractLdapConnection.bind(AbstractLdapConnection.java:134) > at > org.apache.directory.ldap.client.api.AbstractLdapConnection.bind(AbstractLdapConnection.java:118) > {code} > {code} > org.apache.directory.api.ldap.model.exception.LdapException: > ERR_04169_RESPONSE_QUEUE_EMPTIED The response queue has been emptied, no > response was found. > at > org.apache.directory.ldap.client.api.LdapNetworkConnection.bind(LdapNetworkConnection.java:1534) > at > org.apache.directory.ldap.client.api.AbstractLdapConnection.bind(AbstractLdapConnection.java:134) > at > org.apache.directory.ldap.client.api.AbstractLdapConnection.bind(AbstractLdapConnection.java:118) > Caused by: org.apache.directory.api.ldap.model.exception.LdapException: > ERR_04170_TIMEOUT_OCCURED TimeOut occurred > at > org.apache.directory.ldap.client.api.LdapNetworkConnection.bind(LdapNetworkConnection.java:1505) > {code} > {code} > org.apache.directory.api.ldap.model.exception.LdapProtocolErrorException: > PROTOCOL_ERROR: The server will disconnect! > at > org.apache.directory.api.ldap.model.message.ResultCodeEnum.processResponse(ResultCodeEnum.java:2137) > at > org.apache.directory.ldap.client.api.AbstractLdapConnection.bind(AbstractLdapConnection.java:136) > at > org.apache.directory.ldap.client.api.AbstractLdapConnection.bind(AbstractLdapConnection.java:118) > at > org.apache.directory.shared.client.api.operations.bind.SimpleBindRequestTest.testSimpleBindAndUnbindLoop(SimpleBindRequestTest.java:664) > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)