[jcifs] jcifs.smb.SmbException: No description available [ERRSRV/90] - 15 Minutes per day

pagu at pagu.at pagu at pagu.at
Fri Aug 22 21:31:31 EST 2003


We are using jcifs 0.7.11 and are facing the following strange problem. 

our app (tomcat 4.1.12, struts 1.1) uses the jcifs ntlm-http filter which works fine most of the time (approx. 100 - 150 active http-sessions, 5 minutes session timeout). but on every day, there are 15 minutes, where the context-log of the application shows the following exception (happened about 120 times between 11:24 and 11:39):
==========
2003-08-22 11:39:00 StandardWrapperValve[default]: Servlet.service() for servlet default threw exception
jcifs.smb.SmbException: No description available [ERRSRV/90]
	at jcifs.smb.SmbTransport.send(SmbTransport.java:508)
	at jcifs.smb.SmbSession.sessionSetup(SmbSession.java:127)
	at jcifs.smb.SmbSession.send(SmbSession.java:102)
	at jcifs.smb.SmbTree.treeConnect(SmbTree.java:124)
	at jcifs.smb.SmbSession.logon(SmbSession.java:56)
	at jcifs.http.NtlmHttpFilter.doFilter(NtlmHttpFilter.java:122)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
==========

sometimes, such an "error-window" happens a second time in the late afternoon, also lasting for about 15 minutes. 

at the end of an error-window, we find the following exception in the catalina.out:
==========
Aug 22 11:39:47.585 - exception reading from socket input: xx/xxx.xxx.xxx.xxx
java.net.SocketException: Connection reset
	at java.net.SocketInputStream.read(SocketInputStream.java:168)
	at jcifs.netbios.SessionServicePacket.readPacketType(SessionServicePacket.java:68)
	at jcifs.netbios.SocketInputStream.read(SocketInputStream.java:73)
	at jcifs.netbios.SocketInputStream.read(SocketInputStream.java:39)
	at java.io.FilterInputStream.read(FilterInputStream.java:66)
	at java.io.PushbackInputStream.read(PushbackInputStream.java:120)
	at jcifs.smb.SmbTransport.run(SmbTransport.java:304)
	at java.lang.Thread.run(Thread.java:536)
===============
where xx/xxx.xxx.xxx.xxx ist the name/ip-adress of a domain controller.

smb-error 90 means "Too many UIDs active on this session", so we assume, that the domain controllers do not have sufficent ressources to authenticate such a large amount of users in time. 

as a workaround, we are currently adopting the filter, so that an smb-logon only happens one time per http-session. 

are these assumptions correct? is there any other workaround?

regards

paul




More information about the jcifs mailing list