[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: (ITS#5280) JLDAP waits for response for request which hasn't been sent because of connection shutdown



Hello.

I didn't know that pastes from rafb.net are removed after 24 hours.

The new location of thread dump is here:
http://www.sulechow.net/~mwaldows/ITS-5280/thread-dump.log

and new location of JLDAP debug is here:
http://www.sulechow.net/~mwaldows/ITS-5280/debug.log

Regards
Marcin

M.Waldowski@sulechow.net wrote:
> Full_Name: Marcin Waldowski
> Version: novell-jldap-devel-2007.10.12-1netware_windows
> OS: Windows XP
> URL: 
> Submission from: (NULL) (83.20.102.205)
> 
> 
> Hello.
> 
> Our application gets lots of information from LDAP server which uses refferals.
> Code which use jldap is executed in single thread. After some time of obtaining
> informations JLDAP hangs in MessageAgent.getLDAPMessage() as you can see at
> following thread dump:
> 
> http://rafb.net/p/kwhTyh67.html
> 
> It is repeatable every time we execute our application. It hangs always in the
> same line of JLDAP code.
> 
> We turned on jldap debug (-Dldap.debug=TraceAll) and also sniffed communication
> between JLDAP and LDAP server using Wireshark. Interesting part of JLDAP debug
> you can see here:
> 
> http://rafb.net/p/diqKzz11.html
> 
> As you can see some refferal connections is lost in lines 14, 35, 53. After that
> we have some writes to that connections in lines 240 (message 146),  283
> (message 147) and 333 (message 148). All this writes didn't come to the wire (as
> we can see in Wireshark or rather cannot see) because of "java.io.IOException:
> Output stream not initialized". This exception is only logged to debug stream
> and silently discarded in com.novell.ldap.Connection.writeMessage(LDAPMessage
> msg) because variable clientActive is false. So, If I understand it correctly,
> caller code doesn't know that anything goes wrong in called (write message)
> code. As a result JLDAP still wait for responses of messages 146, 147, 148 which
> hasn't been sent. This ends up with forever wait in line 368 of debug stream.
> 
> Regards
> Marcin
> 
> 
>