netbsd-bugs@netbsd.org
[Top] [All Lists]

bin/41439: [dM] undocumented newfs failure

Subject: bin/41439: [dM] undocumented newfs failure
From: der Mouse
Date: Sat, 16 May 2009 07:50:41 UTC
Newsgroups: fa.netbsd.bugs

>Number:         41439
>Category:       bin
>Synopsis:       [dM] mildly extreme newfs arguments produce cryptic failure
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    bin-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat May 16 07:50:00 +0000 2009
>Originator:     der Mouse
>Release:        NetBSD 3.1
>Organization:
        Dis-
>Environment:
System: NetBSD iMac-backup.Rodents-Montreal.ORG 3.1 NetBSD 3.1 (GEN31) #0: Tue 
Jan 13 05:39:59 EST 2009  
mouse@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:/home/mouse/kbuild/GEN31 i386
Architecture: i386
Machine: i386
>Description:
        For at least some combinations of arguments, newfs fails with a
        cryptic and somewhat baffling undocumented error message which
        looks like an internal can't-happen.  I wanted a filesystem
        with large blocksize and very few inodes (it's going to be used
        to store comparatively few very large files); admittedly the
        arguments are somewhat extreme, but this seems like
        a..suboptimal..failure mode.
>How-To-Repeat:
        # newfs -b 65536 -f 8192 -i 33554432 /dev/rwd2a
        CGSIZE miscalculated 65541 > 65536
        # 
        (I would have used even larger block and frag sizes, but newfs
        refuses to accept 128K blocks, saying 64K is the max.)

        In case it matters, here's "disklabel wd2" output:

        # /dev/rwd2d:
        type: ESDI
        disk: Hitachi HDT72101
        label: fictitious
        flags:
        bytes/sector: 512
        sectors/track: 63
        tracks/cylinder: 16
        sectors/cylinder: 1008
        cylinders: 1938021
        total sectors: 1953525168
        rpm: 3600
        interleave: 1
        trackskew: 0
        cylinderskew: 0
        headswitch: 0           # microseconds
        track-to-track seek: 0  # microseconds
        drivedata: 0 
        
        5 partitions:
        #        size    offset     fstype [fsize bsize cpg/sgs]
         a: 976762552        63     4.2BSD      0     0     0  # (Cyl.      0*- 
969010*)
         c: 1953525105        63     unused      0     0        # (Cyl.      
0*- 1938020)
         d: 1953525168         0     unused      0     0        # (Cyl.      0 
- 1938020)
         e: 976762553 976762615     4.2BSD      0     0     0  # (Cyl. 969010*- 
1938020)
>Fix:
        Unknown.  As a workaround, I tried reducing the -i figure (the
        value in how-to-repeat is 32 megs).  Repeatedly halving, I
        found that everything down to 4194304 (4M) produced the same
        error, but 2097152 (2M) worked.  I now have a filesystem, but
        one with substantially more space wasted on inodes than I'd
        like.  32M is actually conservative; the measured figure from
        another filesystem in similar live use (calculated based on
        output from df -i) is about 144M.

        At the very least, I would prefer the failure mode be less
        cryptic.

/~\ The ASCII                             Mouse
\ / Ribbon Campaign
 X  Against HTML                mouse@xxxxxxxxxxxxxxxxxxxx
/ \ Email!           7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B


<Prev in Thread] Current Thread [Next in Thread>