Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Nov 1999 10:01:07 +0100
From:      Joakim Henriksson <murduth@ludd.luth.se>
To:        freebsd-current@freebsd.org
Subject:   Hosed fs?
Message-ID:  <199911100901.KAA02514@rmstar.campus.luth.se>

next in thread | raw e-mail | index | archive | help
Hello, i can reproducible get a panic in cluster_alloc(), with a kernel a 
couple of days old. The code relevant to the  panic is this.

        for (i = 1; i <= len; i++)
                if (!ffs_isblock(fs, cg_blksfree(cgp), got - run + i))
                        panic("ffs_clusteralloc: map mismatch");

Do i have a hosed fs? Since i've gotten a crashdump i can provide more 
information if needded, but i need this resolved soonish. So i'm thinking on 
newfs'ing the disk. Is this overkill or the right medicine for the patient?

From the crashdump i've gotten:

IdlePTD 2981888
initial pcb at 261b80
panicstr: ffs_clusteralloc: map mismatch

#2  0xc019d785 in ffs_clusteralloc (ip=0xc0db0100, cg=116, bpref=3830648, 
    len=14) at ../../ufs/ffs/ffs_alloc.c:1179
1179                            panic("ffs_clusteralloc: map mismatch");
(kgdb) print *ip
$1 = {i_lock = {lk_interlock = {lock_data = 0}, lk_flags = 1024, 
    lk_sharecount = 0, lk_waitcount = 0, lk_exclusivecount = 1, lk_prio = 8, 
    lk_wmesg = 0xc022623a "inode", lk_timo = 0, lk_lockholder = 478}, 
  i_hash = {le_next = 0x0, le_prev = 0xc0b45d38}, i_vnode = 0xc8f5aa00, 
  i_devvp = 0xc83dbd40, i_flag = 143, i_dev = 0xc0b6be00, i_number = 809794, 
  i_effnlink = 1, inode_u = {fs = 0xc0b6a000, e2fs = 0xc0b6a000}, i_dquot = {
    0x0, 0x0}, i_modrev = 1759102206296, i_lockf = 0x0, i_count = 0, 
  i_endoff = 0, i_diroff = 0, i_offset = 0, i_ino = 0, i_reclen = 0, 
  i_spare = {0, 0, 0, 0}, i_din = {di_mode = 33188, di_nlink = 1, di_u = {
      oldids = {0, 0}, inumber = 0}, di_size = 196452352, 
    di_atime = 942168222, di_atimensec = 0, di_mtime = 942167624, 
    di_mtimensec = 0, di_ctime = 942167624, di_ctimensec = 0, di_db = {
      3363320, 3363328, 3363336, 3363344, 3363352, 3363360, 3363368, 3363376, 
      3363384, 3363392, 3363400, 3363408}, di_ib = {3797336, 3903352, 0}, 
    di_flags = 0, di_blocks = 383904, di_gen = 1801554013, di_uid = 0, 
(kgdb) print *fs
$3 = {fs_firstfield = 0, fs_unused_1 = 0, fs_sblkno = 16, fs_cblkno = 24, 
  fs_iblkno = 32, fs_dblkno = 1024, fs_cgoffset = 2048, fs_cgmask = -1, 
  fs_time = 942168235, fs_size = 17106170, fs_dsize = 16578961, fs_ncg = 523, 
  fs_bsize = 8192, fs_fsize = 1024, fs_frag = 8, fs_minfree = 8, 
  fs_rotdelay = 0, fs_rps = 60, fs_bmask = -8192, fs_fmask = -1024, 
  fs_bshift = 13, fs_fshift = 10, fs_maxcontig = 15, fs_maxbpg = 2048, 
  fs_fragshift = 3, fs_fsbtodb = 1, fs_sbsize = 2048, fs_csmask = -512, 
  fs_csshift = 9, fs_nindir = 2048, fs_inopb = 64, fs_nspf = 2, fs_optim = 0, 
  fs_npsect = 4096, fs_interleave = 1, fs_trackskew = 0, fs_id = {938721534, 
    1833775959}, fs_csaddr = 1024, fs_cssize = 9216, fs_cgsize = 6144, 
  fs_ntrak = 1, fs_nsect = 4096, fs_spc = 4096, fs_ncyl = 8353, fs_cpg = 16, 
  fs_ipg = 7936, fs_fpg = 32768, fs_cstotal = {cs_ndir = 24416, 
    cs_nbfree = 516378, cs_nifree = 3945722, cs_nffree = 63650}, 
  fs_fmod = 0 '\000', fs_clean = 0 '\000', fs_ronly = 0 '\000', 
  fs_flags = 2 '\002', fs_fsmnt = "/usr", '\000' <repeats 507 times>, 
  fs_cgrotor = 426, fs_csp = {0xc0b8a000, 0xc0b8c000, 0x0 <repeats 29 times>}, 
  fs_maxcluster = 0xc0b8c400, fs_cpc = 0, fs_opostbl = {{0, 0, 0, 0, 0, 0, 0, 
      0} <repeats 16 times>}, fs_sparecon = {0 <repeats 50 times>}, 
  fs_contigsumsize = 15, fs_maxsymlinklen = 60, fs_inodefmt = 2, 
  fs_maxfilesize = 8796093022207, fs_qbmask = 8191, fs_qfmask = 1023, 
  fs_state = 0, fs_postblformat = 1, fs_nrpos = 1, fs_postbloff = 0, 
  fs_rotbloff = 0, fs_magic = 72020, fs_space = ""}
(kgdb) print *cgp
$6 = {cg_firstfield = 0, cg_magic = 590421, cg_time = 942168235, cg_cgx = 116, 
  cg_ncyl = 16, cg_niblk = 7936, cg_ndblk = 32768, cg_cs = {cs_ndir = 50, 
    cs_nbfree = 373, cs_nifree = 7720, cs_nffree = 47}, cg_rotor = 29688, 
  cg_frotor = 29688, cg_irotor = 206, cg_frsum = {0, 2, 0, 0, 0, 1, 2, 4}, 
  cg_btotoff = 168, cg_boff = 232, cg_iusedoff = 264, cg_freeoff = 1256, 
  cg_nextfreeoff = 5924, cg_clustersumoff = 5348, cg_clusteroff = 5412, 
  cg_nclusterblks = 4096, cg_sparecon = {0 <repeats 13 times>}, 
  cg_space = "\001"}
(kgdb) print run
$7 = 14
(kgdb) 
(kgdb) print i  
$8 = 11
(kgdb) print got
$9 = 3786
(kgdb) 
(kgdb) print got - run + i
$10 = 3783
(kgdb) 

-- 
regards/ Joakim




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199911100901.KAA02514>