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>
