Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Mar 2003 11:52:58 +0100
From:      Thomas Quinot <thomas@FreeBSD.ORG>
To:        Jeff Roberson <jroberson@chesapeake.net>
Cc:        Thomas Quinot <thomas@FreeBSD.ORG>, current@FreeBSD.ORG
Subject:   Re: crash: bwrite: need chained iodone
Message-ID:  <20030312105258.GG51967@melusine.cuivre.fr.eu.org>
In-Reply-To: <20030311221505.C43514-100000@mail.chesapeake.net>
References:  <20030311183543.GA48464@melusine.cuivre.fr.eu.org> <20030311221505.C43514-100000@mail.chesapeake.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Le 2003-03-12, Jeff Roberson écrivait :

> Can you please print bp?  I'd like to know what all of the members are.  A
> cluster buf should NEVER have BX_BKGRDWRITE set.  This is totally bogus.

(kgdb) fr    
#11 0xc0232072 in bwrite (bp=0xce5313e0) at
/usr/src/sys/kern/vfs_bio.c:795
795                             panic("bwrite: need chained iodone");
(kgdb) print *bp
$3 = {b_io = {bio_cmd = 2, bio_dev = 0xffffffff, bio_disk = 0x0, 
    bio_blkno = 18540672, bio_offset = 9492758528, bio_bcount = 32768, 
    bio_data = 0xd42da000 "", bio_flags = 0, bio_error = 0, bio_resid = 0, 
    bio_done = 0xc0235db0 <bufdonebio>, bio_driver1 = 0x0, bio_driver2 = 0x0, 
    bio_caller1 = 0x0, bio_caller2 = 0xce5313e0, bio_queue = {tqe_next = 0x0, 
      tqe_prev = 0xc408200c}, bio_attribute = 0x0, bio_from = 0x0, 
    bio_to = 0x0, bio_length = 0, bio_completed = 0, bio_children = 91, 
    bio_inbed = 0, bio_parent = 0x0, bio_t0 = {sec = 0, frac = 0}, 
    bio_task = 0, bio_task_arg = 0x0, bio_pblkno = 64}, b_op = 0xc03a89f8, 
  b_magic = 280038160, b_iodone = 0xc0239320 <cluster_callback>, 
  b_offset = 688128, b_vnbufs = {tqe_next = 0x0, tqe_prev = 0x0}, 
  b_left = 0x0, b_right = 0x0, b_vflags = 0, b_freelist = {
    tqe_next = 0xce531228, tqe_prev = 0xc03dcb3c}, b_qindex = 0, 
  b_flags = 1677721604, b_xflags = 0 '\0', b_lock = {
    lk_interlock = 0xc03d750c, lk_flags = 0, lk_sharecount = 0, 
    lk_waitcount = 0, lk_exclusivecount = 0, lk_prio = 80, 
    lk_wmesg = 0xc0379b53 "bufwait", lk_timo = 0, lk_lockholder = 0xffffffff, 
    lk_newlock = 0x0}, b_bufsize = 32768, b_runningbufspace = 0, 
  b_kvabase = 0xd42da000 "", b_kvasize = 32768, b_lblkno = 42, 
  b_vp = 0xc4a21124, b_object = 0x0, b_dirtyoff = 0, b_dirtyend = 32768,

  b_rcred = 0x0, b_wcred = 0x0, b_saveaddr = 0xbfbfea40, b_pager = {
    pg_spc = 0x0, pg_reqpage = 0}, b_cluster = {cluster_head = {
      tqh_first = 0xce67bfe8, tqh_last = 0xce6b6b80}, cluster_entry = {
      tqe_next = 0xce67bfe8, tqe_prev = 0xce6b6b80}}, b_pages = {0xc0d14748, 
    0xc0acff90, 0xc0a7cbd8, 0xc0bffc20, 0xc1074868, 0xc10106b0, 0xc10700f8, 
    0xc0f9c040, 0xc0af5808, 0xc0c56c50, 0xc0b47198, 0xc0bdb9e0, 0xc10e7b28, 
    0xc0abba70, 0xc09888b8, 0xc09d3600, 0xc0d14748, 0xc0acff90, 0xc0a7cbd8, 
    0xc0bffc20, 0xc1074868, 0xc10106b0, 0xc10700f8, 0xc0f9c040, 0xc0d21888, 
    0xc105cfd0, 0xc1057f18, 0xc109ff60, 0xc0a18948, 0xc0ab3d90, 0xc0a36fd8, 
    0xc0b91820}, b_npages = 8, b_dep = {lh_first = 0x0}}
(kgdb) 

Hum. Now this is *most* peculiar. bp->b_xflags is 0, so we should never
have entered that 'if', unless there is a race condition somewhere such
that we test b_xflags on a buffer and carry on processing on another...

Hope this helps...

Thomas.

-- 
    Thomas.Quinot@Cuivre.FR.EU.ORG

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?20030312105258.GG51967>