From owner-freebsd-bugs Wed Aug 29 15:30: 9 2001 Delivered-To: freebsd-bugs@hub.freebsd.org Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 57BCE37B403 for ; Wed, 29 Aug 2001 15:30:01 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.11.4/8.11.4) id f7TMU1U14687; Wed, 29 Aug 2001 15:30:01 -0700 (PDT) (envelope-from gnats) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 249C637B407 for ; Wed, 29 Aug 2001 15:29:23 -0700 (PDT) (envelope-from nobody@FreeBSD.org) Received: (from nobody@localhost) by freefall.freebsd.org (8.11.4/8.11.4) id f7TMTFj14599; Wed, 29 Aug 2001 15:29:15 -0700 (PDT) (envelope-from nobody) Message-Id: <200108292229.f7TMTFj14599@freefall.freebsd.org> Date: Wed, 29 Aug 2001 15:29:15 -0700 (PDT) From: Dan Hastings To: freebsd-gnats-submit@FreeBSD.org X-Send-Pr-Version: www-1.0 Subject: kern/30207: writing more than 62Mb to an mfs causes all file writes to hang Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org >Number: 30207 >Category: kern >Synopsis: writing more than 62Mb to an mfs causes all file writes to hang >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Aug 29 15:30:01 PDT 2001 >Closed-Date: >Last-Modified: >Originator: Dan Hastings >Release: 4.4-RC (4-STABLE cvsup'd 25th August) >Organization: >Environment: FreeBSD stormbringer 4.4-RC FreeBSD 4.4-RC #0: Sat Aug 25 13:04:46 BST 2001 dan@stormbringer:/usr/obj/usr/src/sys/STORM2 i386 >Description: I was testing whether the use of a large memory filesystem would speed up the 'buildworld' process. I intended to link /usr/obj to the mfs. However, when copying data to the mfs, the process hung when the mfs reached around 62Mb full. Having experimented further, it seems that any mfs greater than ~62Mb will "hang" when it reaches 62Mb of capacity used. Writes to other filesystems also stop working. Any other process that tries to access the mfs, including things like ls, sync, etc. also hangs and becomes unkillable. The system cannot be shutdown or rebooted, these commands also hang - presumably because they try to sync and unmount the mfs. At this point also, writes to other filesystems start to go astray. Writes to msdos filesystems or ffs without softupdates hang after creating a zero length file. Writes to ffs with softupdates appear to complete normally, but the data is never actually written to the disk. (This is why I've not been able to preserve output from commands after this point.) The only way to recover the system is to power-cycle - which loses all data on the mfs, and all pending writes to other filesystems as well. Whatever the size of the mfs, it seems to hang at the same point, around 62Mb used. >How-To-Repeat: Here's a specific example. The kernel is built with options: options MD_ROOT #MD is a potential root device options MD_NSECT=296960 #max mfs size (full kernel config available on request). As I understand it, this gives a maximum mfs size of 296960 x 512 byte sectors, or 145Mb. I create the filesystem as follows (as according to 'man md'): (root)# disklabel -r -w md0 auto (root)# newfs /dev/md0c Warning: 2048 sector(s) in last cylinder unallocated /dev/md0c: 296960 sectors in 73 cylinders of 1 tracks, 4096 sectors 145.0MB in 5 cyl groups (16 c/g, 32.00MB/g, 7232 i/g) super-block backups (for fsck -b #) at: 32, 65568, 131104, 196640, 262176 (root)# mount /dev/md0c /ram (root)# df /ram Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md0c 143863 1 132353 0% /ram Now I start filling the mfs by unpacking a tar file into it. The tar file I was using contained the /usr/src/contrib directory and contents - fully unpacks to around 128Mb. However, once the mfs reaches 62Mb used, the tar process hangs. 'ps' shows the tar process to be in state 'D+' - 'top' shows it in 'biowr'. The tar process cannot be killed. At this point, the symptoms described previously are apparent - anything that tries to access the mfs, even to read it, hangs. Writes to other filesystems stop working. The only way out is to power-cycle. >Fix: >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message