File caching while "oplocks=False", black magic or what?
Steve Litt
slitt at troubleshooters.com
Sun Nov 28 05:00:08 GMT 1999
Also, experiment with strict locking=yes and see if it changes the symptom
Steve Litt
At 09:26 AM 11/28/1999 +1100, Steve Litt wrote:
>Just for fun can you add strict sync=yes, and see whether the symptom
changes?
>
>Thanks
>
>Steve Litt
>
>
>At 09:02 AM 11/28/1999 +1100, Yannis Tzavellas wrote:
>> NOTE: I have definitely put "oplocks=False" in my smb.conf. I use a
>>program running on 2 machines (win95 and win98) to access data on my samba
>>server (samba 2.0.3-8, on Redhat 6.0). The programs, when accessing data on
>>the server, go like this: int put_record(..)
>> {
>> if (lock(...)) {
>> if (write(...)) {
>> ...
>> } else ...
>> } else ...
>> } i.e they simply lock the file and perform a
>>read or write on it. Files are flushed after writing. So whenever anyone
>>of the 2 windows clients changes a record, this change is actually stored
>>in samba. (A linux-version of the "client" program that runs on the Linux
>>box, sees the change.) BUT this does't work the other way around: A change
>>performed by the linux-client IS NOT SEEN by any of the windows clients.
>>They behave lazily on reading (as if they are caching data). /*
>>After 2 days of debugging, reading docs, drinking coffe and NOT eating
>>pizza (or almost anything),
>>.... I finaly find "a way" to get rid of the problem. But what a way it
>is...
>>*/ The cure I used is absolutely incomprehensible to me: ==>> I just
>>added a little delay (?) loop at the beginning of the
>>==>> get_record() function as in : int get_record(..)
>>{
>> // this little delay (?) loop seems to cure the problem
>> <4; i++) { // 4 or more works, 3 does't !
>> // fh = the file handle
>> // no matter what. I read 10 bytes
>> }
>> // nothing else touched anywhere... if (lock(...)) {
>> if (read(...)) {
>> ....
>> } else ...
>> } else ...
>>} and after this everything seems to work fine ! So my questions are:
>>1. Why windows clients insist to cache data despite of "oplocks=False" ?
>>2. Does anybody understand what is going on with my "solution" and how it
>>actualy manages to force the clients NOT to cache data? Thanks !
>>
>
>
More information about the samba
mailing list