From owner-freebsd-fs Mon Feb 25 13:17:28 2002 Delivered-To: freebsd-fs@freebsd.org Received: from obsecurity.dyndns.org (adsl-64-169-107-10.dsl.lsan03.pacbell.net [64.169.107.10]) by hub.freebsd.org (Postfix) with ESMTP id 81FFF37B402; Mon, 25 Feb 2002 13:17:15 -0800 (PST) Received: by obsecurity.dyndns.org (Postfix, from userid 1000) id 10B3F66C32; Mon, 25 Feb 2002 13:17:14 -0800 (PST) Date: Mon, 25 Feb 2002 13:17:14 -0800 From: Kris Kennaway To: Ian Dowse Cc: Kris Kennaway , mckusick@mckusick.com, fs@FreeBSD.org, dillon@FreeBSD.org, fanf@chiark.greenend.org.uk Subject: Re: UFS panic on -stable Message-ID: <20020225131714.B59373@xor.obsecurity.org> References: <20020225014028.A53147@xor.obsecurity.org> <200202251840.aa88376@salmon.maths.tcd.ie> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-md5; protocol="application/pgp-signature"; boundary="hHWLQfXTYDoKhP50" Content-Disposition: inline User-Agent: Mutt/1.2.5.1i In-Reply-To: <200202251840.aa88376@salmon.maths.tcd.ie>; from iedowse@maths.tcd.ie on Mon, Feb 25, 2002 at 06:40:07PM +0000 Sender: owner-freebsd-fs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org --hHWLQfXTYDoKhP50 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Feb 25, 2002 at 06:40:07PM +0000, Ian Dowse wrote: > In message <20020225014028.A53147@xor.obsecurity.org>, Kris Kennaway writ= es: >=20 > >Is there anything else I can provide? >=20 > I don't have any real idea where to start, but the following information > from frame 11 (ffs_freefile) would be useful. The alternatives are in > case gdb is confused by register variables. >=20 > *pvp [or *(struct vnode *)0xce24d180] > *pip [or *(struct inode *)pvp->v_data] > *fs [or *pip->i_fs] > *bp > *cgp [or *(struct cg *)bp->b_data] > inosused[400/8] [or *((char *)cgp + cgp->cg_iusedoff + 50)] > inosused[0]@200 >=20 > >From frame 18 (fdrop), "*p" and "*fp" might help to give some context > too. Here you go, hope I got everything: (kgdb) frame 11 #11 0xc02ad7ce in ffs_freefile (pvp=3D0xce24d180, ino=3D400, mode=3D438) at= ../../ufs/ffs/ffs_alloc.c:1611 1611 panic("ffs_vfree: freeing free inode"); (kgdb) print *pip $1 =3D {i_lock =3D {lk_interlock =3D {lock_data =3D 0}, lk_flags =3D 1088, = lk_sharecount =3D 0, lk_waitcount =3D 0, lk_exclusivecount =3D 1, lk_prio =3D 8, lk_wmesg =3D 0xc0386582 "inode"= , lk_timo =3D 6, lk_lockholder =3D 2216}, i_hash =3D {le_next =3D 0x0, le_prev =3D 0xc16= 3f64c}, i_vnode =3D 0xce24d180, i_devvp =3D 0xcde3c780, i_flag =3D 134, i_dev =3D 0xc171d100, i_number = =3D 400, i_effnlink =3D 0, inode_u =3D { fs =3D 0xc16f6000, e2fs =3D 0xc16f6000}, i_dquot =3D {0x0, 0x0}, i_modr= ev =3D 181199503653679, i_lockf =3D 0x0, i_count =3D 0, i_endoff =3D 0, i_diroff =3D 0, i_offset = =3D 0, i_ino =3D 0, i_reclen =3D 0, i_spare =3D {0, 0, 0}, i_dirhash =3D 0x0, i_din =3D {di_mode =3D 0, di_nl= ink =3D 0, di_u =3D {oldids =3D {0, 0}, inumber =3D 0}, di_size =3D 0, di_atime =3D 0, di_atimensec =3D 0, di= _mtime =3D 1014629101, di_mtimensec =3D 0, di_ctime =3D 1014629101, di_ctimensec =3D 0, di_db = =3D {0 }, di_ib =3D {0, 0, 0}, di_flags =3D 0, di_blocks =3D 0, di_gen =3D 812712= 882, di_uid =3D 0, di_gid =3D 0, di_spare =3D {0, 0}}} (kgdb) print *(struct inode *)pvp->v_data Cannot access memory at address 0x78. (kgdb) print *pvp Cannot access memory at address 0x0. (kgdb) print *(struct vnode *)0xce24d180 $2 =3D {v_flag =3D 0, v_usecount =3D 0, v_writecount =3D 0, v_holdcnt =3D 0= , v_id =3D 6943683, v_mount =3D 0xc1692000, v_op =3D 0xc1604e00, v_freelist =3D {tqe_next =3D= 0xce6a6fc0, tqe_prev =3D 0xc03e8efc}, v_nmntvnodes =3D {tqe_next =3D 0x0, tqe_prev = =3D 0xcdfeae64}, v_cleanblkhd =3D { tqh_first =3D 0x0, tqh_last =3D 0xce24d1ac}, v_dirtyblkhd =3D {tqh_firs= t =3D 0x0, tqh_last =3D 0xce24d1b4}, v_synclist =3D {le_next =3D 0x0, le_prev =3D 0xce5728fc}, v_numoutput =3D= 0, v_type =3D VNON, v_un =3D { vu_mountedhere =3D 0x0, vu_socket =3D 0x0, vu_spec =3D {vu_specinfo =3D= 0x0, vu_specnext =3D { sle_next =3D 0x0}}, vu_fifoinfo =3D 0x0}, v_lease =3D 0x0, v_lastw = =3D 0, v_cstart =3D 0, v_lasta =3D 0, v_clen =3D 0, v_object =3D 0x0, v_interlock =3D {lock_data =3D 0}, v_vnlo= ck =3D 0xc188f900, v_tag =3D VT_UFS, v_data =3D 0xc188f900, v_cache_src =3D {lh_first =3D 0x0}, v_cache_dst = =3D {tqh_first =3D 0xc1d17680, tqh_last =3D 0xc1d17690}, v_dd =3D 0xce24d180, v_ddid =3D 0, v_pollinfo= =3D {vpi_lock =3D {lock_data =3D 0}, vpi_selinfo =3D {si_pid =3D 0, si_note =3D {slh_first =3D 0x0}, si_flag= s =3D 0}, vpi_events =3D 0, vpi_revents =3D 0}, v_vxproc =3D 0x0} (kgdb) print *fs $3 =3D {fs_firstfield =3D 0, fs_unused_1 =3D 0, fs_sblkno =3D 8, fs_cblkno = =3D 16, fs_iblkno =3D 24, fs_dblkno =3D 280, fs_cgoffset =3D 1024, fs_cgmask =3D -1, fs_time =3D 10= 14587292, fs_size =3D 1024, fs_dsize =3D 743, fs_ncg =3D 1, fs_bsize =3D 16384, fs_fsize =3D 2048, fs= _frag =3D 8, fs_minfree =3D 8, fs_rotdelay =3D 0, fs_rps =3D 60, fs_bmask =3D -16384, fs_fmask =3D -2048= , fs_bshift =3D 14, fs_fshift =3D 11, fs_maxcontig =3D 7, fs_maxbpg =3D 4096, fs_fragshift =3D 3, fs_fsbtodb = =3D 2, fs_sbsize =3D 2048, fs_csmask =3D -1024, fs_csshift =3D 10, fs_nindir =3D 4096, fs_inopb =3D = 128, fs_nspf =3D 4, fs_optim =3D 0, fs_npsect =3D 4096, fs_interleave =3D 1, fs_trackskew =3D 0, fs_id =3D {1= 014586946, 723435801}, fs_csaddr =3D 280, fs_cssize =3D 2048, fs_cgsize =3D 16384, fs_ntrak =3D = 1, fs_nsect =3D 4096, fs_spc =3D 4096, fs_ncyl =3D 1, fs_cpg =3D 104, fs_ipg =3D 4096, fs_fpg =3D 106496, fs_cst= otal =3D {cs_ndir =3D 2, cs_nbfree =3D 88, cs_nifree =3D 3362, cs_nffree =3D 5}, fs_fmod =3D 1 '= \001', fs_clean =3D 0 '\000', fs_ronly =3D 0 '\000', fs_flags =3D 0 '\000', fs_fsmnt =3D "/dev", '\000'= , fs_cgrotor =3D 0, fs_ocsp =3D {0x0 }, fs_contigdirs =3D= 0xc16f7804 "", fs_csp =3D 0xc16f7000, fs_maxcluster =3D 0xc16f7800, fs_cpc =3D 0, fs_opo= stbl =3D {{0, 0, 0, 0, 0, 0, 0, 0} }, fs_snapinum =3D {0 }, fs_av= gfilesize =3D 16384, fs_avgfpdir =3D 64, fs_sparecon =3D {0 }, fs_pendingblo= cks =3D 0, fs_pendinginodes =3D 0, fs_contigsumsize =3D 7, fs_maxsymlinklen =3D 60, fs_inodefmt =3D 2, fs_ma= xfilesize =3D 17592186044415, fs_qbmask =3D 16383, fs_qfmask =3D 2047, fs_state =3D 0, fs_postblformat = =3D 1, fs_nrpos =3D 1, fs_postbloff =3D 0, fs_rotbloff =3D 0, fs_magic =3D 72020, fs_space =3D "= "} (kgdb) print *bp $4 =3D {b_hash =3D {le_next =3D 0xc6891dc0, le_prev =3D 0xc68d3fac}, b_vnbu= fs =3D {tqe_next =3D 0xc68c6f34, tqe_prev =3D 0xcde3c7b4}, b_freelist =3D {tqe_next =3D 0xc68350d4, tqe_= prev =3D 0xc6898ea4}, b_act =3D { tqe_next =3D 0x0, tqe_prev =3D 0xc171e190}, b_flags =3D 160, b_qindex = =3D 0, b_xflags =3D 5 '\005', b_lock =3D {lk_interlock =3D {lock_data =3D 0}, lk_flags =3D 1024, lk_sha= recount =3D 0, lk_waitcount =3D 0, lk_exclusivecount =3D 1, lk_prio =3D 20, lk_wmesg =3D 0xc036db70 "bufwa= it", lk_timo =3D 0, lk_lockholder =3D 2216}, b_error =3D 0, b_bufsize =3D 16384, b_runningb= ufspace =3D 0, b_bcount =3D 16384, b_resid =3D 0, b_dev =3D 0xc171d100, b_data =3D 0xc8169000 "", b_kvabase = =3D 0xc8169000 "", b_kvasize =3D 16384, b_lblkno =3D 64, b_blkno =3D 64, b_offset =3D 32768,= b_iodone =3D 0, b_iodone_chain =3D 0x0, b_vp =3D 0xcde3c780, b_dirtyoff =3D 0, b_dirtyend= =3D 0, b_rcred =3D 0x0, b_wcred =3D 0x0, b_pblkno =3D 47230112, b_saveaddr =3D 0x0, b_driver1 =3D= 0x0, b_driver2 =3D 0x0, b_caller1 =3D 0x0, b_caller2 =3D 0x0, b_pager =3D {pg_spc =3D 0x0, pg_req= page =3D 0}, b_cluster =3D { cluster_head =3D {tqh_first =3D 0xc689ce20, tqh_last =3D 0xc6818ba0}, c= luster_entry =3D { tqe_next =3D 0xc689ce20, tqe_prev =3D 0xc6818ba0}}, b_pages =3D {0xc0= c2b61c, 0xc0bef658, 0xc09ce414, 0xc098d1d0, 0x0 }, b_npages =3D 4, b_dep =3D {lh_firs= t =3D 0x0}, b_chain =3D { parent =3D 0x0, count =3D 0}} (kgdb) print *cgp $5 =3D {cg_firstfield =3D 0, cg_magic =3D 590421, cg_time =3D 1014629101, c= g_cgx =3D 0, cg_ncyl =3D 1, cg_niblk =3D 4096, cg_ndblk =3D 1024, cg_cs =3D {cs_ndir =3D 2, cs_nbfree= =3D 88, cs_nifree =3D 3362, cs_nffree =3D 5}, cg_rotor =3D 312, cg_frotor =3D 312, cg_irotor =3D 81= , cg_frsum =3D {0, 0, 0, 0, 0, 1, 0, 0}, cg_btotoff =3D 168, cg_boff =3D 584, cg_iusedoff =3D 792, cg_freeof= f =3D 1304, cg_nextfreeoff =3D 16308, cg_clustersumoff =3D 14612, cg_clusteroff =3D 1= 4644, cg_nclusterblks =3D 128, cg_sparecon =3D {0 }, cg_space =3D "X"} (kgdb) print inosused[400/8] $6 =3D 254 '=FE' (kgdb) print inosused[0]@200 $7 =3D "=FF=FF=FF=FF=FF=FF=FF=FF=FF=FF=FD", '=FF' , "=FE"= , '=FF' , "?=FE", '=FF' , "=F7\017", '\= 000' (kgdb) print *((char *)cgp + cgp->cg_iusedoff + 50) $8 =3D -2 '=FE' (kgdb) frame 18 #18 0xc01a71d4 in fdrop (fp=3D0xc1d658c0, p=3D0xcc2fba00) at ../../sys/file= .h:217 217 return ((*fp->f_ops->fo_close)(fp, p)); (kgdb) print *p Cannot access memory at address 0x0. (kgdb) print *fp $9 =3D {f_list =3D {le_next =3D 0xc17c1d00, le_prev =3D 0xc1755740}, f_FILL= ER3 =3D 0, f_type =3D 1, f_flag =3D 3, f_cred =3D 0xc1f0c080, f_ops =3D 0xc03b2028, f_seqcount =3D 1, f_nextoff = =3D 0, f_offset =3D 0, f_data =3D 0xce24d180 "", f_count =3D 0, f_msgcount =3D 0} (kgdb) Kris --hHWLQfXTYDoKhP50 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (FreeBSD) Comment: For info see http://www.gnupg.org iD8DBQE8eqnaWry0BWjoQKURAqJcAKDVnVrpW/T7XaQ8QJouoJF5GUJ3egCfTvrM xjCN/BmfZenfyAQ3Opot62w= =jVxw -----END PGP SIGNATURE----- --hHWLQfXTYDoKhP50-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-fs" in the body of the message