Matt, you are a tenacious, fearsome bug hunter!
Matt
Matthew Dillon wrote:
>
> 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
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message