From owner-freebsd-current Wed Mar 12 2:53: 4 2003 Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 60F9637B404; Wed, 12 Mar 2003 02:53:02 -0800 (PST) Received: from melusine.cuivre.fr.eu.org (melusine.cuivre.fr.eu.org [62.212.105.185]) by mx1.FreeBSD.org (Postfix) with ESMTP id D37F843F93; Wed, 12 Mar 2003 02:53:00 -0800 (PST) (envelope-from thomas@FreeBSD.ORG) Received: by melusine.cuivre.fr.eu.org (Postfix, from userid 1000) id 62B122C3D2; Wed, 12 Mar 2003 11:52:58 +0100 (CET) Date: Wed, 12 Mar 2003 11:52:58 +0100 From: Thomas Quinot To: Jeff Roberson Cc: Thomas Quinot , current@FreeBSD.ORG Subject: Re: crash: bwrite: need chained iodone Message-ID: <20030312105258.GG51967@melusine.cuivre.fr.eu.org> Reply-To: Thomas Quinot References: <20030311183543.GA48464@melusine.cuivre.fr.eu.org> <20030311221505.C43514-100000@mail.chesapeake.net> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20030311221505.C43514-100000@mail.chesapeake.net> User-Agent: Mutt/1.4i X-message-flag: WARNING! Using Outlook can damage your computer. Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG 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 , 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 , 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