[809] in testers
Re: Vax AFS time skew problem
daemon@ATHENA.MIT.EDU (daemon@ATHENA.MIT.EDU)
Sun May 20 20:49:52 1990
From: epeisach@ATHENA.MIT.EDU
Date: Sun, 20 May 90 20:49:14 -0400
To: probe@ATHENA.MIT.EDU
Cc: testers@ATHENA.MIT.EDU, bug-afs@ATHENA.MIT.EDU
I disagree with your solution.
You have just totally prevented flushing of an entry for the cache on
version number changes. By setting the tvc->flushDV to the MAX value,
you will never flush the item from the cache. The code that sets the
value to the proper level is in the flush routine. I suspect what is
really missing is the setting flushDV to the m.DataVersion somewhere
else in the code on the first read in. It appears to me that the call
where you are setting to MAX* prevents proper flushing later. This would
prevent the proper behaviour from happening if version numbers change on
texts. I would examine who is calling afs_FlushActiveVcaches. It seems
to me, that there is some missing logic in that it is assuming that the
files that are being flushed were active texts, when it is simply data.
Check comments as to why the full flush in afs_cache. I suspect a bug
lies in the setting of flushDV initially. flusDV refers to the last
version flushed from the cache. If you are first reasding the file into
your cache, perhaps the flushed version should match the Dataversion?
Examining the code appears to only set the flushDV in ther flushing
code. There appears to be two other instances of setting flushDV in
afs_vnodeops.c but I have not examined them yet.
Ezra