https://bugzilla.novell.com/show_bug.cgi?id=466381 Summary: CIFS client requests write with old FID after connection reset Classification: openSUSE Product: openSUSE 11.0 Version: Final Platform: Other OS/Version: Other Status: NEW Severity: Normal Priority: P5 - None Component: Samba AssignedTo: samba-maintainers@SuSE.de ReportedBy: agraf@novell.com QAContact: samba-maintainers@SuSE.de Found By: --- I am running a cifs client on 2.6.25, connecting to an openSUSE 11.0 samba server. The client runs in a VM on the same machine using KVM. During massive data transfer, I experienced network hangs in KVM's virtio networking, that apparently triggered a bug in the cifs client of the guest: 96549 17.142084 172.16.2.2 -> 172.16.2.1 SMB Write AndX Request, FID: 0x1590, 57344 bytes at offset 2178293760 [ after that a new split capture file starts, that's why the times and ids look off ] [...] 10371 6.460212 172.16.2.1 -> 172.16.2.2 SMB Write AndX Response, 57344 bytes [...] 10418 6.464444 172.16.2.1 -> 172.16.2.2 SMB Write AndX Response, 57344 bytes [...] 10488 10.883599 172.16.2.1 -> 172.16.2.2 TCP [TCP ACKed lost segment] microsoft-ds > 59590 [ACK] Seq=1600385 Ack=9012623 Win=8062 Len=0 TSV=452206937 TSER=4294955533 10489 27.499716 172.16.2.2 -> 172.16.2.1 TCP [TCP Previous segment lost] 59590 > microsoft-ds [FIN, ACK] Seq=9028083 Ack=1600385 Win=5911 Len=0 TSV=4294957195 TSER=452206947 So between packet 10488 and 10489 the connection was lost for 17 seconds. After that the cifs client correctly tried to reestablish the connection. 10490 27.499765 172.16.2.2 -> 172.16.2.1 TCP 59591 > microsoft-ds [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=4294957195 TSER=0 WS=7 10491 27.499799 172.16.2.1 -> 172.16.2.2 TCP microsoft-ds > 59591 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0 MSS=1460 TSV=452211091 TSER=4294957195 WS=7 10492 27.500246 172.16.2.2 -> 172.16.2.1 TCP 59591 > microsoft-ds [ACK] Seq=1 Ack=1 Win=5888 Len=0 TSV=4294957195 TSER=452211091 10493 27.500283 172.16.2.2 -> 172.16.2.1 SMB Negotiate Protocol Request 10494 27.500300 172.16.2.1 -> 172.16.2.2 TCP microsoft-ds > 59591 [ACK] Seq=1 Ack=83 Win=5888 Len=0 TSV=452211091 TSER=4294957195 10495 27.513985 172.16.2.1 -> 172.16.2.2 SMB Negotiate Protocol Response 10496 27.514504 172.16.2.2 -> 172.16.2.1 TCP 59591 > microsoft-ds [ACK] Seq=83 Ack=102 Win=5888 Len=0 TSV=4294957196 TSER=452211095 10497 27.514551 172.16.2.2 -> 172.16.2.1 SMB Session Setup AndX Request, User: \contain2 10498 27.517014 172.16.2.1 -> 172.16.2.2 SMB Session Setup AndX Response But just after that tries to send a write request with the old FID: 10559 27.520280 172.16.2.2 -> 172.16.2.1 SMB Write AndX Request, FID: 0x1590, 57344 bytes at offset 2181328896 10566 27.520482 172.16.2.1 -> 172.16.2.2 SMB Write AndX Response, Error: STATUS_INVALID_HANDLE Unfortunately that old FID is unknown to the new connection, because the file hasn't been opened again. This is expressed in the log of the client: CIFS VFS: server not responding CIFS VFS: No response for cmd 50 mid 52571 CIFS VFS: No response to cmd 47 mid 52572 CIFS VFS: Write2 ret -11, wrote 0 CIFS VFS: No response to cmd 47 mid 52570 CIFS VFS: Write2 ret -11, wrote 0 CIFS VFS: Write2 ret -9, wrote 0 CIFS VFS: Write2 ret -9, wrote 0 I would've expected the client to reopen all files again. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.