[jcifs] Connection Reset during jcifs data transfer .......

pasquale semeraro pasquale_semeraro at yahoo.it
Thu Aug 30 08:17:45 GMT 2007


hello,
  I am using jcifs-1.2.17
When I transfer data with jcifs from host A(winXP) to host B(win2k) and 
after a while, in another process, try to access to the same host B from host A
without jcifs, the jcifs data transfer return the following error : 
   
  java.net.SocketException: Connection reset
   
  at java.net.SocketInputStream.read(SocketInputStream.java:168)
   
  at jcifs.util.transport.Transport.readn(Transport.java:29)
   
  at jcifs.smb.SmbTransport.peekKey(SmbTransport.java:355)
   
  at jcifs.util.transport.Transport.loop(Transport.java:100)
   
  at jcifs.util.transport.Transport.run(Transport.java:265)
   
  at java.lang.Thread.run(Thread.java:534)
   
  java.net.SocketException: Connection reset by peer: socket write error
   
  at java.net.SocketOutputStream.socketWrite0(Native Method)
   
  at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
   
  [Ljava.lang.StackTraceElement;@b9b5381
   
  at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
   
  at jcifs.smb.SmbTransport.doSend(SmbTransport.java:417)
   
  at jcifs.util.transport.Transport.sendrecv(Transport.java:70)
   
  at jcifs.smb.SmbTransport.send(SmbTransport.java:606)
   
  at jcifs.smb.SmbSession.send(SmbSession.java:239)
   
  at jcifs.smb.SmbTree.send(SmbTree.java:109)
   
  at jcifs.smb.SmbFile.send(SmbFile.java:695)
   
  at jcifs.smb.SmbFileOutputStream.writeDirect(SmbFileOutputStream.java:241)
   
  at jcifs.smb.SmbFileOutputStream.write(SmbFileOutputStream.java:212)
   
    
..
  I have captured the last jcifs "Write AndX Request" with ethereal  ......
   
     5715 1.060709    130.1.86.180          130.1.86.160          SMB      Write AndX Request, FID: 0x000b, 4096 bytes at offset 57344
   5716 1.079043    130.1.86.180          130.1.86.160          TCP      1164 > microsoft-ds [SYN] Seq=0 Len=0 MSS=1460
   5717 1.079103    130.1.86.160          130.1.86.180          TCP      microsoft-ds > 1164 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1460
   5718 1.079175    130.1.86.180          130.1.86.160          TCP      1165 > netbios-ssn [SYN] Seq=0 Len=0 MSS=1460
   5719 1.079204    130.1.86.160          130.1.86.180          TCP      netbios-ssn > 1165 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1460
   5720 1.079336    10.100.0.180          130.1.86.160          TCP      1166 > netbios-ssn [SYN] Seq=0 Len=0 MSS=1460
   5721 1.079371    130.1.86.180          130.1.86.160          TCP      1164 > microsoft-ds [ACK] Seq=1 Ack=1 Win=65535 Len=0
   5722 1.079374    130.1.86.180          130.1.86.160          TCP      1165 > netbios-ssn [ACK] Seq=1 Ack=1 Win=65535 Len=0
   5723 1.079376    130.1.86.180          130.1.86.160          TCP      1165 > netbios-ssn [RST] Seq=1 Len=0
   5724 1.079509    130.1.86.180          130.1.86.160          SMB      Negotiate Protocol Request
   5725 1.079715    130.1.86.160          130.1.86.180          SMB      Negotiate Protocol Response
   5726 1.085140    130.1.86.180          130.1.86.160          SMB      Session Setup AndX Request, NTLMSSP_NEGOTIATE
   5727 1.085248    130.1.86.160          130.1.86.180          TCP      microsoft-ds > 1162 [RST] Seq=59929 Len=0
   5728 1.085306    10.100.0.180          130.1.86.160          TCP      1166 > netbios-ssn [RST] Seq=1 Len=0
   5729 1.223473    130.1.86.160          130.1.86.180          TCP      microsoft-ds > 1164 [ACK] Seq=90 Ack=320 Win=65216 [TCP CHECKSUM INCORRECT] Len=0
   5730 1.224834    130.1.86.160          130.1.86.180          SMB      Session Setup AndX Response, NTLMSSP_CHALLENGE, Error: STATUS_MORE_PROCESSING_REQUIRED
   5731 1.225302    130.1.86.180          130.1.86.160          SMB      Session Setup AndX Request, NTLM
   ..................
   
  the following code reproduce the same error :
  thread 1:
.............
m_out=new SmbFileOutputStream( new SmbFile("smb://ntdom;user:pass@192.168.6.23/Efesto/dueore.wav"));
byte[] buff = new byte[4096];
FileInputStream input  = new FileInputStream("c:/Efesto/dueore.wav");
for(;;)
{
      int n=input.read(buff);
      if(n<=0)
          break;
      m_out.write(buff,0,n);
}        

m_out.close();
............
   
  thread 2:
..........
Thread.sleep(10000);

new File("//192.168.6.23/Efesto", "Job_prova").exists();

.........
   
  Any 
  idea?
   
  Thanks in advance,
  Pasquale
   

       
---------------------------------

---------------------------------
L'email della prossima generazione? Puoi averla con la nuova Yahoo! Mail
-------------- next part --------------
HTML attachment scrubbed and removed


More information about the jcifs mailing list