directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Lecharny (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DIRAPI-342) Unbind breaks connection
Date Sat, 01 Jun 2019 11:49:00 GMT

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

Emmanuel Lecharny commented on DIRAPI-342:
------------------------------------------

AFAICT, there are valuable things in your previous commit. I'll probably merge the two.

ATM, I'm fighting with exceptions that cause the connection to stall (because it's waiting
for the {{closedSession}} event that is never called).

Making progress though.

> 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.AM4, 2.0.0
>
>         Attachments: latch.patch
>
>
> 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)

Mime
View raw message