[cifs-protocol] Excel timestamp client side-caching request
Jeremy Allison
jra at samba.org
Fri Aug 21 17:29:12 MDT 2009
On Fri, Aug 21, 2009 at 11:25:57PM +0000, Hongwei Sun wrote:
> Jeremy,
>
>
>
> After much of testing and debugging, it seems that we are getting the cause
> why Windows takes the file offline and the timestamp update only goes to local
> store. When Windows close one particular handle through which the file had
> been modified, it queries the timestamps using FIND_FIRST2 on the file after
> receiving the close response. Those timestamps are then saved in CSC cache.
> We can see that the LastWriteTime value returned from the create response does
> not match the value returned from FIND_FRIST2 query. The mismatch of
> LastWriteTime causes Windows to declare the version conflict between server
> copy and local cache and thus takes it offline.
>
>
>
> Here are the details shown in the traces you sent us..
>
>
>
> Office2003-opnclose-samba-bad.cap:
>
>
>
> Opening file, the current time stamp is written to the excel file
>
>
>
> Frame 175 10.20.0.111 10.20.0.66 SMB Trans2 Response,
> FIND_FIRST2, Files: excel test.xls Last Write: Jul 8, 2009 15:10:06.000000000
>
> Frame 185 10.20.0.111 10.20.0.66 SMB NT Create AndX Response,
> FID: 0x13ff Last Write: Jul 8, 2009 15:10:06.000000000
>
> Frame 214 10.20.0.66 10.20.0.111 SMB Trans2 Request,
> SET_FILE_INFO, FID: 0x13ff
>
>
>
> So far so good..
>
>
>
> Closing file, the original time stamp is supposed to be restored to the
> excel file
>
>
>
> Frame 574 10.20.0.111 10.20.0.66 SMB Trans2 Response,
> FIND_FIRST2, Files: excel test.xls Last Write: Jul 8, 2009 19:36:12.294000000
>
> Frame 587 10.20.0.111 10.20.0.66 SMB NT Create AndX Response,
> FID: 0x103e Last Write: Jul 8, 2009 19:36:12.000000000
>
>
>
> Mismatch of time stamp is detected and remote file is closed and it is
> going offline. SET_FILEINFO will not sent to the server any update will
> only goes to local copy.
>
>
>
> Frame 588 10.20.0.66 10.20.0.111 SMB Close Request, FID:
> 0x103e
>
>
>
> From all the failed cases I got, I can see that only the millisecond part
> is different.
>
>
>
> You may look at the difference between logics of those two commands
> regarding LastWriteTime. Please let me know what you think and, if necessary,
> we can continue working together to debug the problem.
Fantastic analysis ! Thanks. I'll get onto this immediately.
Thanks,
Jeremy.
More information about the cifs-protocol
mailing list