Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 Jan 2002 08:10:01 -0800 (PST)
From:      Hiten Pandya <hitmaster2k@yahoo.com>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: i386/29045: Heavy disk usage causes panic in ffs_blkfree
Message-ID:  <200201021610.g02GA1388617@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR i386/29045; it has been noted by GNATS.

From: Hiten Pandya <hitmaster2k@yahoo.com>
To: freebsd-gnats-submit@FreeBSD.org, wmoran@iowna.com
Cc: iedowse@maths.tcd.ie
Subject: Re: i386/29045: Heavy disk usage causes panic in ffs_blkfree
Date: Wed, 02 Jan 2002 16:01:51 +0000

 hi,
 
 > IdlePTD 3174400
 >
 >     initial pcb at 286640
 >     panicstr: ffs_blkfree: freeing free block
 >     panic messages:
 >     panic: ffs_blkfree: freeing free block
 >
 >     syncing disks... 128 123 110 92 66 34 2 2 2 2 2 2 2 2 2 2 2 2 2 2 
 >     giving up on 2 buffers
 
 people..
 forgive me if I am wrong, and possibly correct me.. :-)
 
 I think the issue is all write here in the boot() function, located in
 src/sys/kern/kern_shutdown.c
 
 The following piece of code I have found:
 (around line 309)
 
 
 ====================
 if (nbusy) {
 	/*
 	 * Failed to sync all blocks. Indicate this and don't
 	 * unmount filesystems (thus forcing an fsck on reboot).
 	 */	
 	printf("giving up on %d buffers\n", nbusy);
 	DELAY(5000000);	/* 5 seconds */
 
 } else {
 	printf("done\n");
 	/*
 	 * Unmount filesystems
 	 */
 	if (panicstr == 0)
 	vfs_unmountall();
 }
 ======================
 
 The reason you are having a corruption is simply clear,
 according to the comment.  The unmount doesn't occur, and forces and
 'fsck' on
 reboot, thus causing a loss of data or corruption.
 
 I don't have a clue what would happen if the 'unmount' was done when all
 failed
 to sync.. probably a bad thing would happen.... :-(
 
 What we can do, according to my limited knowledge of the kernel, is to
 print
 some more debugging output, example:
 
 ===
 giving up on %d buffers...
 Filesystem check (fsck) will occur on next reboot...
 ===
 
 Patch:
 
 --- kern_shutdown.c.orig        Wed Jan  2 15:48:34 2002
 +++ kern_shutdown.c     Wed Jan  2 15:50:52 2002
 @@ -311,6 +311,7 @@
                          * unmount filesystems (thus forcing an fsck on
 reboot).
                          */
                         printf("giving up on %d buffers\n", nbusy);
 +                       printf("FileSystem check (fsck) will occur on
 reboot...\n");
                         DELAY(5000000); /* 5 seconds */
                 } else {
                         printf("done\n");
 
 
 regards,
  - Hiten
  - <hiten@uk.FreeBSD.org>
 
 -- 
 Fingerprint:
 1024 45:a5:9c:f2:fb:07:da:70:18:02:0b:f3:63:f1:7a:a6 hitenp@hpdi.ath.cx

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?200201021610.g02GA1388617>