Here's a general update on this bug report to -current. It took all day
but I was finally able to reproduce Andrew's bug.
You guys are going to *love* this.
NFS uses the kernel 'boottime' structure to generate its version id.
Now normally you might believe that this structure, once set, will
never change. The authors of NFS certainly make that assumption!
No such luck. If you happen to be running, oh, xntpd for example,
the kernel adjusts the boottime structure to take into account time
changes, including PLL changes so, in fact, the boottime structure
can change quite often - once each tick, in fact.
Now, the effect of boottime changing on NFS is rather drastic. You
see, the version id controls whether NFS clients must reset their
state machines for NFS data writes. If a client has done a stage 1
write and is ready to do the stage 2 commit, and the version id
changes, the client must revert back to stage 1.
And so Andrews bug report comes into the light! His poor client
(and mine once I reproduced the bug) got into a state, due to the
server returning a different version id for virtually every packet,
where it resent the same write data over the network over and over
and over and over and over again.
I think recent changes to the way the kernel clocks work in -current
brought the bug out into the open, but it's definitely a problem in
both -stable and -current.
Doh! I gotta say that if I hadn't happened to have been running xntpd
on my test box I would have *never* figured it out.
-Matt
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message