NetBSD-Bugs archive

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

Re: kern/60504: lfs_cleanerd can kernel crash on load in lfs_fcntl; lfs_sp == NULL



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

From: Shinichi Doyashiki <clare%csel.org@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: 
Subject: Re: kern/60504: lfs_cleanerd can kernel crash on load in lfs_fcntl;
 lfs_sp == NULL
Date: Tue, 28 Jul 2026 05:44:07 +0900

 kernel crash was triggered while running cvs update on the testing LFS partition.
 first and second savecore was failed due to crash kernel again
 while running savecore itself.  following are taken from third kernel crash.
 lfs_sp == NULL deref on fcntl command 2684931076 in lfs_vnops.c line 2037,
 same location, reproduced crash.
 
 gdb) target kvm /export/crash/netbsd.15.core
 0xffffffff80239c5a in cpu_reboot (howto=howto@entry=260,
     bootstr=bootstr@entry=0x0) at ../../../../arch/amd64/amd64/machdep.c:779
 779                     dumpsys();
 (gdb) bt
 #0  0xffffffff80239c5a in cpu_reboot (howto=howto@entry=260,
     bootstr=bootstr@entry=0x0) at ../../../../arch/amd64/amd64/machdep.c:779
 #1  0xffffffff80ae8e6f in kern_reboot (howto=howto@entry=260,
     bootstr=bootstr@entry=0x0) at ../../../../kern/kern_reboot.c:91
 #2  0xffffffff80b32ced in vpanic (fmt=fmt@entry=0xffffffff8110e72e "trap",
     ap=ap@entry=0xffffbf89470b5b38) at ../../../../kern/subr_prf.c:288
 #3  0xffffffff80b32dc2 in panic (fmt=fmt@entry=0xffffffff8110e72e "trap")
     at ../../../../kern/subr_prf.c:209
 #4  0xffffffff8023d04e in trap (frame=0xffffbf89470b5c80)
     at ../../../../arch/amd64/amd64/trap.c:325
 #5  0xffffffff80234ad4 in alltraps ()
 #6  0xffffffff80a52e16 in lfs_fcntl (v=0xffffbf89470b5e40)
     at ../../../../ufs/lfs/lfs_vnops.c:2037
 #7  lfs_fcntl (v=0xffffbf89470b5e40) at ../../../../ufs/lfs/lfs_vnops.c:1851
 #8  0xffffffff80bb9bae in VOP_FCNTL (vp=0xffff854afc2cb080,
     command=<optimized out>, data=<optimized out>, fflag=<optimized out>,
     cred=<optimized out>) at ../../../../kern/vnode_if.c:972
 #9  0xffffffff80b44818 in fcntl_forfs (fd=<optimized out>, fp=<optimized out>,
     cmd=-1610036220, arg=0x7f7fff4e1e08) at ../../../../kern/sys_descrip.c:226
 #10 sys_fcntl (l=<optimized out>, uap=<optimized out>, retval=<optimized out>)
     at ../../../../kern/sys_descrip.c:385
 #11 0xffffffff805cc341 in sy_call (sy=0xffffffff81460b20 <sysent+2208>,
     l=0xffff854afa92a800, uap=0xffffbf89470b6000, rval=0xffffbf89470b5fb0)
     at ../../../../sys/syscallvar.h:65
 #12 sy_invoke (sy=0xffffffff81460b20 <sysent+2208>, l=0xffff854afa92a800,
     uap=0xffffbf89470b6000, rval=0xffffbf89470b5fb0, code=92)
     at ../../../../sys/syscallvar.h:94
 #13 syscall (frame=0xffffbf89470b6000)
     at ../../../../arch/x86/x86/syscall.c:137
 #14 0xffffffff8021025d in handle_syscall ()
 
 failed in same location.
 
 gdb) frame 4
 #4  0xffffffff8023d04e in trap (frame=0xffffbf89470b5c80)
     at ../../../../arch/amd64/amd64/trap.c:325
 325                     panic("trap");
 (gdb) p/x frame->tf_trapno
 $1 = 0x6
 (gdb) p/x frame->tf_err
 $2 = 0x0
 (gdb) p/x frame->tf_rip
 $3 = 0xffffffff80a52e16
 (gdb) p/x frame->tf_rdx
 $4 = 0x0
 (gdb) x/i frame->tf_rip
    0xffffffff80a52e16 <lfs_fcntl+2317>: mov    0x68(%rdx),%rdx
 (gdb) frame 6
 #6  0xffffffff80a52e16 in lfs_fcntl (v=0xffffbf89470b5e40)
     at ../../../../ufs/lfs/lfs_vnops.c:2037
 2037                            lws.offset = lfs_btofsb(fs, fs->lfs_sp->bytes_written);
 
 failed in same fcntl command.
 
 (gdb) info args
 v = 0xffffbf89470b5e40
 gdb) p *(struct vop_fcntl_args *)0xffffbf89470b5e40
 $5 = {a_desc = 0xffffffff810ea640 <vop_fcntl_desc>, a_vp = 0xffff854afc2cb080,
   a_command = 2684931076, a_data = 0xffffbf89470b5ed8, a_fflag = 1,
   a_cred = 0xffff855233b26040}
 (gdb) p *$vp
 $6 = {v_uobj = {vmobjlock = 0xffff854afb693100,
     pgops = 0xffffffff810e3ec0 <uvm_vnodeops>, uo_npages = 0, uo_refs = 1,
     uo_pages = {t_root = 0x0, t_height = 0}, uo_ubc = {lh_first = 0x0}},
   v_size = 32980992, v_writesize = 32980992, v_cv = {cv_opaque = {0x0,
       0xffffffff81153aa4}}, v_iflag = 16384, v_uflag = 0,
   v_usecount = -1073741821, v_numoutput = 0, v_writecount = 0,
   v_holdcnt = 3627, v_cleanblkhd = {lh_first = 0xffff854b03de0d80},
   v_dirtyblkhd = {lh_first = 0xffff854b03de0e98}, v_vflag = 0,
   v_interlock = 0xffff854b07ec0c40, v_mount = 0xffff854afb88a000,
   v_op = 0xffff85522faada00, v_un = {vu_mountedhere = 0x0, vu_socket = 0x0,
     vu_specnode = 0x0, vu_fifoinfo = 0x0, vu_ractx = 0x0}, v_type = VREG,
   v_tag = VT_LFS, v_data = 0xffff854afbdcc038, v_klist = 0xffff854afc2cb198,
   v_segvguard = 0x0}
 (gdb) p/x $vp->v_data
 $7 = 0xffff854afbdcc038
 (gdb) set $ip = (struct inode *)0xffff854afbdcc038
 (gdb) p *$ip
 $8 = {i_gnode = {g_op = 0xffffffff810e2840 <lfs_genfsops>, g_glock = {
       rw_owner = 0}}, i_nextsnap = {tqe_next = 0x0, tqe_prev = 0x0},
   i_vnode = 0xffff854afc2cb080, i_ump = 0xffff854af8f64600,
   i_devvp = 0xffff854af9354580, i_state = 9, i_dev = 43011, i_number = 1,
   i_lfs = 0xffff854afa950000, i_unused1 = 0x0, i_dquot = {0x0, 0x0},
   i_modrev = 1615681151458, i_lockf = 0x0, i_crap = {ulr_count = 0,
     ulr_endoff = 0, ulr_diroff = 0, ulr_offset = 0, ulr_reclen = 0},
   i_crapcounter = 0, inode_ext = {lfs = 0xffff854afc30e038}, i_mode = 33152,
   i_nlink = 1, i_size = 32980992, i_flags = 131072, i_gen = 1, i_uid = 0,
   i_gid = 0, i_omode = 0, i_dirhash = 0x0, i_din = 0xffff854afbf4d038}
 (gdb) p/x $ip->i_lfs
 $9 = 0xffff854afa950000
 (gdb) p/x ((struct lfs *)0xffff854afa950000)->lfs_sp
 $10 = 0x0
 
 # fsck -n /lfs
 ** /dev/rdk3 (NO WRITE)
 ** Newer checkpoint verified; recovered 39 seconds of data
 ** Last Mounted on /lfs
 ** Phase 0 - Check Inode Free List
 ** Phase 1 - Check Blocks and Sizes
 ** Phase 2 - Check Pathnames
 ** Phase 3 - Check Connectivity
 ** Phase 4 - Check Reference Counts
 ** Phase 5 - Check Segment Block Accounting
 DMETA GIVEN AS 1424365, SHOULD BE 1424395
 
 FIX? no
 
 AVAIL GIVEN AS 2490250, SHOULD BE 2490130
 
 FIX? no
 
 1565695 files, 38944944 used, 4712836 free
 
 
 



Home | Main Index | Thread Index | Old Index