NetBSD-Bugs archive

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

Re: kern/40163: mv(1) cause WAPBL panic



The following reply was made to PR kern/40163; it has been noted by GNATS.

From: Greg Oster <oster%cs.usask.ca@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: 
Subject: Re: kern/40163: mv(1) cause WAPBL panic 
Date: Fri, 12 Dec 2008 20:50:29 -0600

 "Jared D. McNeill" writes:
 > The following reply was made to PR kern/40163; it has been noted by GNATS.
 > 
 > From: "Jared D. McNeill" <jmcneill%invisible.ca@localhost>
 > To: gnats-bugs%NetBSD.org@localhost
 > Cc: kern-bug-people%netbsd.org@localhost, gnats-admin%netbsd.org@localhost, 
 > netbsd-bugs%netbsd.or@localhost
 > g
 > Subject: Re: kern/40163: mv(1) cause WAPBL panic
 > Date: Fri, 12 Dec 2008 21:20:02 -0500 (EST)
 > 
 >  On Sat, 13 Dec 2008, lloyd%must-have-coffee.gen.nz@localhost wrote:
 >  >> Description:
 >  > Typing "mv foo/foo ." causes a panic if the filesystem in question has log
 > ging enabled.
 >  
 >  I am able to reproduce this on 5.0 also, note that foo/foo must be a 
 >  directory and not a regular file.
 
 Ah! That is the key..
 
 db> tr
 breakpoint() at netbsd:breakpoint+0x5
 panic() at netbsd:panic+0x255
 lockdebug_abort() at netbsd:lockdebug_abort+0x42
 rw_vector_enter() at netbsd:rw_vector_enter+0x213
 vlockmgr() at netbsd:vlockmgr+0xf6
 VOP_LOCK() at netbsd:VOP_LOCK+0x28
 vn_lock() at netbsd:vn_lock+0xd9
 wapbl_ufs_rename() at netbsd:wapbl_ufs_rename+0x5c2
 ufs_rename() at netbsd:ufs_rename+0x39
 VOP_RENAME() at netbsd:VOP_RENAME+0x39
 do_sys_rename() at netbsd:do_sys_rename+0x3d6
 syscall() at netbsd:syscall+0xb4
 db> 
 
 
 (gdb) list *(wapbl_ufs_rename+0x5c2)
 0xffffffff802613b2 is in wapbl_ufs_rename 
(/u1/builds/build102/src/sys/ufs/ufs/ufs_wapbl.c:347).
 342              */
 343             fcnp->cn_flags &= ~(MODMASK | SAVESTART);
 344             fcnp->cn_flags |= LOCKPARENT | LOCKLEAF;
 345             if (newparent) {
 346                     vn_lock(fdvp, LK_EXCLUSIVE | LK_RETRY);
 347                     if ((error = relookup(fdvp, &fvp, fcnp))) {
 348                             vput(fdvp);
 349                             vrele(ap->a_fvp);
 350                             goto out2;
 351                     }
 (gdb) 
 
 
 Later...
 
 Greg Oster
 
 


Home | Main Index | Thread Index | Old Index