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>