tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: page fault in ufs_fhtovp



On Mon, May 26, 2014 at 12:24:56PM +0200, Martin Husemann wrote:
> On Mon, May 26, 2014 at 11:39:09AM +0200, Edgar Fuß wrote:
> > On a 6.1/amd64 NFS server, I got the following:
> > 
> > uvm_fault(0xfffffe82cd149228, 0x0, 1) -> e
> > fatal page fault in supervisor mode
> > trap type 6 code 0 rip ffffffff803fc5a1 cs 8 rflags 10246 cr2  c8 cpl 0 rsp 
> > fffffe82aaa38660
> > kernel: page fault trap, code=0
> > Stopped in pid 9953.3 (nfsd) at netbsd:ufs_fhtovp+0x2e: cmpw $0,c8(%rdx)
> 
>              if ((error = VFS_VGET(mp, ufhp->ufid_ino, &nvp)) != 0) {
>                      *vpp = NULLVP;
>                      return (error);
>              }
>              ip = VTOI(nvp);
>              KASSERT(ip != NULL);
> -->          if (ip->i_mode == 0 || ip->i_gen != ufhp->ufid_gen) {
> 
> Looks like the KASSERT should have caught it (in a DIAGNOSTIC kernel).
> VTOI returned NULL?

Probably. I've already fixed races like this (between fhtovp() and reclaim)
in the past, but I guess there are some more ... Not easy to track down.

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index