You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Stefan Seelmann (JIRA)" <ji...@apache.org> on 2019/05/04 09:29:00 UTC

[jira] [Created] (DIRAPI-342) Unbind breaks connection

Stefan Seelmann created DIRAPI-342:
--------------------------------------

             Summary: 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
             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)