Date: Mon, 22 Jul 2002 15:00:08 -0700 From: Pat Lashley <patl+freebsd@volant.org> To: FreeBSD-gnats-submit@FreeBSD.org Subject: kern/40903: Busy_count is < 0 message keeps counting down Message-ID: <132290000.1027375208@mccaffrey.phoenix.volant.org>
next in thread | raw e-mail | index | archive | help
>Number: 40903 >Category: kern >Synopsis: Busy_count is < 0 message keeps counting down >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Mon Jul 22 15:10:02 PDT 2002 >Closed-Date: >Last-Modified: >Originator: Pat Lashley >Release: FreeBSD 4.6-STABLE i386 >Organization: >Environment: System: FreeBSD orwell.phoenix.volant.org 4.6-STABLE FreeBSD 4.6-STABLE #9: Mon Jun 24 14:21:35 PDT 2002 root@orwell.phoenix.volant.org:/usr/obj/usr/src/sys/ORWELL i386 >Description: Occasionally I find this machine in a loop emitting the message: "devstat_end_transaction: HELP!! busy_count for da0 is < 0 (*******)" to the console. The "*******" is a large negative number which counts down with each iteration. (Having apparently wrapped around from 0.) Sometimes it is da1 instead of da0. It seems to me that this is probably actually two problems. One is whatever is causing the busy_count go negative and the other is that it continues to decrement after going negative. >How-To-Repeat: I haven't been able to determine what triggers it - any preceeding message has long since scrolled off the console; and it doesn't leave any traces in the logs. It appears to happen early in the morning, generally when the daily periodic scripts are running; and often, but not always, while the nightly backups are running, though not necessarily accessing those disks. (This machine is the backup server for my LAN.) Da0 and da1 are Maxtor USB disks, the bulk of which are configured as a RAID mirror via vinum. (Don't ask.) There is also an IDE disk and an Adaptec 29160 attached to an Exabyte EZ17 tape library with a Mamoth drive. >Fix: I believe the following patch will prevent the hard loop as it tries to count down from 0xffffffff to zero: --- subr_devstat.c.~1~ Wed Aug 2 17:09:32 2000 +++ subr_devstat.c Mon Jul 22 11:02:48 2002 @@ -222,10 +222,12 @@ /* Add our busy time to the total busy time. */ timevaladd(&ds->busy_time, &busy_time); - } else if (ds->busy_count < 0) + } else if (ds->busy_count < 0) { printf("devstat_end_transaction: HELP!! busy_count " "for %s%d is < 0 (%d)!\n", ds->device_name, ds->unit_number, ds->busy_count); + ds->busy_count = 0 ; + } } void >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?132290000.1027375208>